home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / AIncludes / OCEMail.a < prev    next >
Encoding:
Text File  |  1996-01-24  |  61.8 KB  |  1,974 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OCEMail.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment OCEMail Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Package:    Universal Interfaces 2.2 in “MPW” on ETO #20
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__OCEMAIL__') = 'UNDEFINED' THEN
  21. __OCEMAIL__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  25.     include 'AppleEvents.a'
  26.     ENDIF
  27. ;        include 'Errors.a'                                            ;
  28. ;            include 'ConditionalMacros.a'                            ;
  29. ;        include 'Types.a'                                            ;
  30. ;        include 'Memory.a'                                            ;
  31. ;            include 'MixedMode.a'                                    ;
  32. ;        include 'OSUtils.a'                                        ;
  33. ;        include 'Events.a'                                            ;
  34. ;            include 'Quickdraw.a'                                    ;
  35. ;                include 'QuickdrawText.a'                            ;
  36. ;        include 'EPPC.a'                                            ;
  37. ;            include 'AppleTalk.a'                                    ;
  38. ;            include 'Files.a'                                        ;
  39. ;                include 'Finder.a'                                    ;
  40. ;            include 'PPCToolbox.a'                                    ;
  41. ;            include 'Processes.a'                                    ;
  42. ;        include 'Notification.a'                                    ;
  43.  
  44.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  45.     include 'Files.a'
  46.     ENDIF
  47.  
  48.     IF &TYPE('__MEMORY__') = 'UNDEFINED' THEN
  49.     include 'Memory.a'
  50.     ENDIF
  51.  
  52.     IF &TYPE('__TEXTEDIT__') = 'UNDEFINED' THEN
  53.     include 'TextEdit.a'
  54.     ENDIF
  55.  
  56.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  57.     include 'Types.a'
  58.     ENDIF
  59.  
  60.     IF &TYPE('__DIGITALSIGNATURE__') = 'UNDEFINED' THEN
  61.     include 'DigitalSignature.a'
  62.     ENDIF
  63.  
  64.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  65.     include 'OCE.a'
  66.     ENDIF
  67. ;        include 'Aliases.a'                                        ;
  68. ;        include 'Script.a'                                            ;
  69. ;            include 'IntlResources.a'                                ;
  70.  
  71.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  72.     include 'OCEAuthDir.a'
  73.     ENDIF
  74.  
  75.     IF &TYPE('__OCEMESSAGING__') = 'UNDEFINED' THEN
  76.     include 'OCEMessaging.a'
  77.     ENDIF
  78. ; typedef union MSAMParam     MSAMParam
  79. ; typedef long                 MailMsgRef
  80. ; reference to an open msam queue 
  81. ; typedef long                 MSAMQueueRef
  82. ; identifies slots managed by a PMSAM 
  83. ; typedef unsigned short     MSAMSlotID
  84. ; reference to an active mailbox 
  85. ; typedef long                 MailboxRef
  86. ; identifies slots within a mailbox 
  87. ; typedef unsigned short     MailSlotID
  88. ; identifies a letter in a mailbox 
  89. MailSeqNum                 RECORD    0
  90. slotID                     ds.w   1        ; offset: $0 (0)
  91. seqNum                     ds.l   1        ; offset: $2 (2)
  92. sizeof                     EQU *            ; size:   $6 (6)
  93.                         ENDR
  94.  
  95. ; typedef struct MailSeqNum  MailSeqNum
  96. ; A MailBuffer is used to describe a buffer used for an IO operation.
  97. ;The location of the buffer is pointed to by 'buffer'. 
  98. ;When reading, the size of the buffer is 'bufferSize' 
  99. ;and the size of data actually read is 'dataSize'.
  100. ;When writing, the size of data to be written is 'bufferSize' 
  101. ;and the size of data actually written is 'dataSize'.
  102. ;
  103. MailBuffer                 RECORD    0
  104. bufferSize                 ds.l   1        ; offset: $0 (0)
  105. buffer                     ds.l   1        ; offset: $4 (4)
  106. dataSize                 ds.l   1        ; offset: $8 (8)
  107. sizeof                     EQU *            ; size:   $C (12)
  108.                         ENDR
  109.  
  110. ; typedef struct MailBuffer  MailBuffer
  111. ; A MailReply is used to describe a commonly used reply buffer format.
  112. ;It contains a count of tuples followed by an array of tuples.
  113. ;The format of the tuple itself depends on each particular call.
  114. ;
  115. MailReply                 RECORD    0
  116. tupleCount                 ds.w   1        ; offset: $0 (0)
  117. ; tuple[tupleCount] 
  118. sizeof                     EQU *            ; size:   $2 (2)
  119.                         ENDR
  120.  
  121. ; typedef struct MailReply     MailReply
  122. ; Shared Memory Communication Area used when Mail Manager sends 
  123. ;High Level Events to a PMSAM. 
  124. ;
  125. SMCA                     RECORD    0
  126. smcaLength                 ds.w   1        ; offset: $0 (0)        ; includes size of smcaLength field 
  127. result                     ds.w   1        ; offset: $2 (2)
  128. userBytes                 ds.l   1        ; offset: $4 (4)
  129. slotCID                     ds.l   2        ; offset: $8 (8)        ; for create/modify/delete slot calls 
  130.                          ORG 8
  131. msgHint                     ds.l   1        ; offset: $8 (8)        ; for kMailEPPCMsgOpened 
  132.                          ORG 16
  133. sizeof                     EQU *            ; size:   $10 (16)
  134.                         ENDR
  135.  
  136. ; typedef struct SMCA         SMCA
  137. ;************************************************************************************
  138. ; Value of creator and types fields for messages and blocks defined by MailManager 
  139.  
  140. kMailAppleMailCreator            EQU        'apml'                ; message and letter block creator 
  141. kMailLtrMsgType                    EQU        'lttr'                ; message type of letters, reports 
  142. kMailLtrHdrType                    EQU        'lthd'                ; contains letter header 
  143. kMailContentType                EQU        'body'                ; contains content of letter 
  144. kMailEnclosureListType            EQU        'elst'                ; contains list of enclosures 
  145. kMailEnclosureDesktopType        EQU        'edsk'                ; contains desktop mgr info for enclosures 
  146. kMailEnclosureFileType            EQU        'asgl'                ; contains a file enclosure 
  147. ; format is defined by AppleSingle 
  148. kMailImageBodyType                EQU        'imag'                ; contains image of letter 
  149. ;        format is struct TPfPgDir - in Printing.h
  150. ;    *    struct TPfPgDir {
  151. ;    *        short    pageCount;        - number of pages in the image.
  152. ;    *        long    iPgPos[129];    - iPgPos[n] is the offset from the start of the block
  153. ;    *                                - to image of page n.
  154. ;    *                                - iPgPos[n+1] - iPgPos[n] is the length of page n.
  155. ;
  156. kMailMSAMType                    EQU        'gwyi'                ; contains msam specific information 
  157. kMailTunnelLtrType                EQU        'tunl'                ; used to read a tunnelled message 
  158. kMailHopInfoType                EQU        'hopi'                ; used to read hopInfo for a tunnelled message 
  159. kMailReportType                    EQU        'rpti'                ; contains report info 
  160. ;
  161. ;Reports have the isReport bit set in MailIndications and contain a block of type kMailReport.
  162. ;This block has a header, IPMReportBlockHeader,
  163. ;followed by an array of elements, each of type IPMRecipientReport
  164. ;
  165. ;Various families used by mail or related msgs
  166. ;
  167. kMailFamily                        EQU        'mail'                ; Defines family of "mail" msgs: content, header, etc 
  168. kMailFamilyFile                    EQU        'file'
  169.  
  170. ;************************************************************************************
  171. ; typedef unsigned short     MailAttributeID
  172. ; Values of MailAttributeID 
  173. ; Message store attributes - stored in the catalog 
  174. ; Will always be present in a letter and have fixed sizes 
  175.  
  176. kMailLetterFlagsBit                EQU        1                    ; MailLetterFlags 
  177. ; Letter attributes - stored in the letter 
  178. ;   Will always be present in a letter and have fixed sizes 
  179. kMailIndicationsBit                EQU        3                    ; MailIndications 
  180. kMailMsgTypeBit                    EQU        4                    ; OCECreatorType 
  181. kMailLetterIDBit                EQU        5                    ; MailLetterID 
  182. kMailSendTimeStampBit            EQU        6                    ; MailTime 
  183. kMailNestingLevelBit            EQU        7                    ; MailNestingLevel 
  184. kMailMsgFamilyBit                EQU        8                    ; OSType 
  185. ; Letter attributes - stored in the letter
  186. ;   May be present in a letter and have fixed sizes 
  187. kMailReplyIDBit                    EQU        9                    ; MailLetterID 
  188. kMailConversationIDBit            EQU        10                    ; MailLetterID 
  189. ; Letter attributes - stored in the letter
  190. ;   May be present in a letter and have variable length sizes 
  191. kMailSubjectBit                    EQU        11                    ; RString 
  192. kMailFromBit                    EQU        12                    ; MailRecipient 
  193. kMailToBit                        EQU        13                    ; MailRecipient 
  194. kMailCcBit                        EQU        14                    ; MailRecipient 
  195. kMailBccBit                        EQU        15                    ; MailRecipient 
  196.  
  197. ; typedef unsigned long     MailAttributeMask
  198. ; Values of MailAttributeMask 
  199.  
  200. kMailLetterFlagsMask            EQU        1
  201. kMailIndicationsMask            EQU        4
  202. kMailMsgTypeMask                EQU        8
  203. kMailLetterIDMask                EQU        16
  204. kMailSendTimeStampMask            EQU        32
  205. kMailNestingLevelMask            EQU        64
  206. kMailMsgFamilyMask                EQU        128
  207. kMailReplyIDMask                EQU        256
  208. kMailConversationIDMask            EQU        512
  209. kMailSubjectMask                EQU        1024
  210. kMailFromMask                    EQU        2048
  211. kMailToMask                        EQU        4096
  212. kMailCcMask                        EQU        8192
  213. kMailBccMask                    EQU        16384
  214.  
  215. ; typedef unsigned long     MailAttributeBitmap
  216. ;************************************************************************************
  217. ; typedef unsigned short     MailLetterSystemFlags
  218. ; Values of MailLetterSystemFlags 
  219. ; letter is available locally (either by nature or via cache) 
  220.  
  221. kMailIsLocalBit                    EQU        2
  222.  
  223. kMailIsLocalMask                EQU        1 << kMailIsLocalBit
  224.  
  225. ; typedef unsigned short     MailLetterUserFlags
  226.  
  227. kMailReadBit                    EQU        0                    ; this letter has been opened 
  228. kMailDontArchiveBit                EQU        1                    ; this letter is not 
  229. ; to be archived either because 
  230. ;                                           it has already been archived or 
  231. ;                                           it should not be archived. 
  232. kMailInTrashBit                    EQU        2                    ; this letter is in trash 
  233.  
  234. ; Values of MailLetterUserFlags 
  235. kMailReadMask                    EQU        1
  236. kMailDontArchiveMask            EQU        2
  237. kMailInTrashMask                EQU        4
  238.  
  239. MailLetterFlags         RECORD    0
  240. sysFlags                 ds.w   1        ; offset: $0 (0)
  241. userFlags                 ds.w   1        ; offset: $2 (2)
  242. sizeof                     EQU *            ; size:   $4 (4)
  243.                         ENDR
  244.  
  245. ; typedef struct MailLetterFlags  MailLetterFlags
  246. MailMaskedLetterFlags     RECORD    0
  247. flagMask                 ds.l   1        ; offset: $0 (0)        ; flags that are to be set 
  248. flagValues                 ds.l   1        ; offset: $4 (4)        ; and their values 
  249. sizeof                     EQU *            ; size:   $8 (8)
  250.                         ENDR
  251.  
  252. ; typedef struct MailMaskedLetterFlags  MailMaskedLetterFlags
  253.  
  254. kMailOriginalInReportBit        EQU        1
  255. kMailNonReceiptReportsBit        EQU        3
  256. kMailReceiptReportsBit            EQU        4
  257. kMailForwardedBit                EQU        5
  258. kMailPriorityBit                EQU        6
  259. kMailIsReportWithOriginalBit    EQU        8
  260. kMailIsReportBit                EQU        9
  261. kMailHasContentBit                EQU        10
  262. kMailHasSignatureBit            EQU        11
  263. kMailAuthenticatedBit            EQU        12
  264. kMailSentBit                    EQU        13
  265. kMailNativeContentBit            EQU        14
  266. kMailImageContentBit            EQU        15
  267. kMailStandardContentBit            EQU        16
  268.  
  269. ; Values of MailIndications 
  270. kMailStandardContentMask        EQU        65536
  271. kMailImageContentMask            EQU        32768
  272. kMailNativeContentMask            EQU        16384
  273. kMailSentMask                    EQU        8192
  274. kMailAuthenticatedMask            EQU        4096
  275. kMailHasSignatureMask            EQU        2048
  276. kMailHasContentMask                EQU        1024
  277. kMailIsReportMask                EQU        512
  278. kMailIsReportWithOriginalMask    EQU        256
  279. kMailPriorityMask                EQU        96
  280. kMailForwardedMask                EQU        32
  281. kMailReceiptReportsMask            EQU        16
  282. kMailNonReceiptReportsMask        EQU        8
  283. kMailOriginalInReportMask        EQU        3
  284.  
  285. ; typedef unsigned long     MailIndications
  286. ; values of the field originalInReport in MailIndications 
  287.  
  288. kMailNoOriginal                    EQU        0                    ; do not enclose original in reports 
  289. kMailEncloseOnNonReceipt        EQU        3                    ; enclose original in non-delivery reports 
  290.  
  291. ; typedef IPMMsgID             MailLetterID
  292. MailTime                 RECORD    0
  293. time                     ds.l   1        ; offset: $0 (0)        ; current UTC(GMT) time 
  294. offset                     ds.l   1        ; offset: $4 (4)        ; offset from GMT 
  295. sizeof                     EQU *            ; size:   $8 (8)
  296.                         ENDR
  297.  
  298. ; typedef struct MailTime     MailTime
  299. ; innermost letter has nestingLevel 0 
  300. ; typedef unsigned short     MailNestingLevel
  301. ; typedef OCERecipient         MailRecipient
  302. ;************************************************************************************
  303.  
  304. kMailTextSegmentBit                EQU        0
  305. kMailPictSegmentBit                EQU        1
  306. kMailSoundSegmentBit            EQU        2
  307. kMailStyledTextSegmentBit        EQU        3
  308. kMailMovieSegmentBit            EQU        4
  309.  
  310. ; typedef unsigned short     MailSegmentMask
  311. ; Values of MailSegmentMask 
  312.  
  313. kMailTextSegmentMask            EQU        1
  314. kMailPictSegmentMask            EQU        2
  315. kMailSoundSegmentMask            EQU        4
  316. kMailStyledTextSegmentMask        EQU        8
  317. kMailMovieSegmentMask            EQU        16
  318.  
  319. ; typedef unsigned short     MailSegmentType
  320. ; Values of MailSegmentType 
  321.  
  322. kMailInvalidSegmentType            EQU        0
  323. kMailTextSegmentType            EQU        1
  324. kMailPictSegmentType            EQU        2
  325. kMailSoundSegmentType            EQU        3
  326. kMailStyledTextSegmentType        EQU        4
  327. kMailMovieSegmentType            EQU        5
  328.  
  329. ;************************************************************************************
  330. kMailErrorLogEntryVersion        EQU        $101
  331. kMailMSAMErrorStringListID        EQU        128                    ; These 'STR#' resources should be 
  332. kMailMSAMActionStringListID        EQU        129                    ; in the PMSAM resource fork 
  333.  
  334. ; typedef unsigned short     MailLogErrorType
  335. ; Values of MailLogErrorType 
  336.  
  337. kMailELECorrectable                EQU        0
  338. kMailELEError                    EQU        1
  339. kMailELEWarning                    EQU        2
  340. kMailELEInformational            EQU        3
  341.  
  342. ; typedef short             MailLogErrorCode
  343. ; Values of MailLogErrorCode 
  344.  
  345. kMailMSAMErrorCode                EQU        0                    ; positive codes are indices into
  346. ;                                                   PMSAM defined strings 
  347. kMailMiscError                    EQU        -1                    ; negative codes are OCE defined 
  348. kMailNoModem                    EQU        -2                    ; modem required, but missing 
  349.  
  350. MailErrorLogEntryInfo     RECORD    0
  351. version                     ds.w   1        ; offset: $0 (0)
  352. timeOccurred             ds.l   1        ; offset: $2 (2)        ; do not fill in 
  353. reportingPMSAM             ds.l   8        ; offset: $6 (6)        ; do not fill in 
  354. reportingMSAMSlot         ds.l   8        ; offset: $26 (38)        ; do not fill in 
  355. errorType                 ds.w   1        ; offset: $46 (70)
  356. errorCode                 ds.w   1        ; offset: $48 (72)
  357. errorResource             ds.w   1        ; offset: $4A (74)        ; resources are valid if 
  358. actionResource             ds.w   1        ; offset: $4C (76)        ; errorCode = kMailMSAMErrorCode
  359. ;                                                   index starts from 1 
  360. filler                     ds.l   1        ; offset: $4E (78)
  361. filler2                     ds.w   1        ; offset: $52 (82)
  362. sizeof                     EQU *            ; size:   $54 (84)
  363.                         ENDR
  364.  
  365. ; typedef struct MailErrorLogEntryInfo  MailErrorLogEntryInfo
  366. ;************************************************************************************
  367. ; typedef short             MailBlockMode
  368. ; Values of MailBlockMode 
  369.  
  370. kMailFromStart                    EQU        1                    ; write data from offset calculated from 
  371. kMailFromLEOB                    EQU        2                    ; start of block, end of block, 
  372. kMailFromMark                    EQU        3                    ; or from the current mark 
  373.  
  374. MailEnclosureInfo         RECORD    0
  375. enclosureName             ds.l   1        ; offset: $0 (0)
  376. catInfo                     ds.l   1        ; offset: $4 (4)
  377. comment                     ds.l   1        ; offset: $8 (8)
  378. icon                     ds.l   1        ; offset: $C (12)
  379. sizeof                     EQU *            ; size:   $10 (16)
  380.                         ENDR
  381.  
  382. ; typedef struct MailEnclosureInfo  MailEnclosureInfo
  383. ;************************************************************************************
  384.  
  385. kOCESetupLocationNone            EQU        0                    ; disconnect state 
  386. kOCESetupLocationMax            EQU        8                    ; maximum location value 
  387.  
  388. ; typedef char                 OCESetupLocation
  389. ; location state is a bitmask, 0x1=>1st location active, 
  390. ; * 0x2 => 2nd, 0x4 => 3rd, etc.
  391. ; typedef unsigned char     MailLocationFlags
  392. MailLocationInfo         RECORD    0
  393. location                 ds.b   1        ; offset: $0 (0)
  394. active                     ds.b   1        ; offset: $1 (1)
  395. sizeof                     EQU *            ; size:   $2 (2)
  396.                         ENDR
  397.  
  398. ; typedef struct MailLocationInfo  MailLocationInfo
  399. ;************************************************************************************
  400. ; Definitions for Personal MSAMs 
  401. ;************************************************************************************
  402.  
  403. kMailEPPCMsgVersion                EQU        3
  404.  
  405. MailEPPCMsg             RECORD    0
  406. version                     ds.w   1        ; offset: $0 (0)
  407. theSMCA                     ds.l   1        ; offset: $2 (2)        ; for 'crsl', 'mdsl', 'dlsl', 'sndi', 'msgo', 'admn' 
  408.                          ORG 2
  409. sequenceNumber             ds.l   1        ; offset: $2 (2)        ; for 'inqu', 'dlom' 
  410.                          ORG 2
  411. locationInfo             ds.w   1        ; offset: $2 (2)        ; for 'locc' 
  412.                          ORG 6
  413. sizeof                     EQU *            ; size:   $6 (6)
  414.                         ENDR
  415.  
  416. ; typedef struct MailEPPCMsg  MailEPPCMsg
  417. ; Values of OCE defined High Level Event message classes 
  418.  
  419. kMailEPPCCreateSlot                EQU        'crsl'
  420. kMailEPPCModifySlot                EQU        'mdsl'
  421. kMailEPPCDeleteSlot                EQU        'dlsl'
  422. kMailEPPCShutDown                EQU        'quit'
  423. kMailEPPCMailboxOpened            EQU        'mbop'
  424. kMailEPPCMailboxClosed            EQU        'mbcl'
  425. kMailEPPCMsgPending                EQU        'msgp'
  426. kMailEPPCSendImmediate            EQU        'sndi'
  427. kMailEPPCContinue                EQU        'cont'
  428. kMailEPPCSchedule                EQU        'sked'
  429. kMailEPPCAdmin                    EQU        'admn'
  430. kMailEPPCInQUpdate                EQU        'inqu'
  431. kMailEPPCMsgOpened                EQU        'msgo'
  432. kMailEPPCDeleteOutQMsg            EQU        'dlom'
  433. kMailEPPCWakeup                    EQU        'wkup'
  434. kMailEPPCLocationChanged        EQU        'locc'
  435.  
  436. MailTimer                 RECORD    0
  437. frequency                 ds.l   1        ; offset: $0 (0)        ; how often to connect 
  438.                          ORG 0
  439. connectTime                 ds.l   1        ; offset: $0 (0)        ; time since midnight 
  440.                          ORG 4
  441. sizeof                     EQU *            ; size:   $4 (4)
  442.                         ENDR
  443.  
  444. ; typedef union MailTimer     MailTimer
  445.  
  446. kMailTimerOff                    EQU        0                    ; control is off 
  447. kMailTimerTime                    EQU        1                    ; specifies connect time (relative to midnight) 
  448. kMailTimerFrequency                EQU        2                    ; specifies connect frequency 
  449.  
  450. ; typedef Byte                 MailTimerKind
  451. MailTimers                 RECORD    0
  452. sendTimeKind             ds.b   1        ; offset: $0 (0)        ; either kMailTimerTime or kMailTimerFrequency 
  453. receiveTimeKind             ds.b   1        ; offset: $1 (1)        ; either kMailTimerTime or kMailTimerFrequency 
  454. send                     ds.l   1        ; offset: $2 (2)
  455. receive                     ds.l   1        ; offset: $6 (6)
  456. sizeof                     EQU *            ; size:   $A (10)
  457.                         ENDR
  458.  
  459. ; typedef struct MailTimers  MailTimers
  460. MailStandardSlotInfoAttribute RECORD    0
  461. version                     ds.w   1        ; offset: $0 (0)
  462. active                     ds.b   1        ; offset: $2 (2)        ; active if MailLocationMask(i) is set 
  463. padByte                     ds.b   1        ; offset: $3 (3)
  464. sendReceiveTimer         ds.w   5        ; offset: $4 (4)
  465. sizeof                     EQU *            ; size:   $E (14)
  466.                         ENDR
  467.  
  468. ; typedef struct MailStandardSlotInfoAttribute  MailStandardSlotInfoAttribute
  469. PMSAMGetMSAMRecordPB     RECORD    0
  470. qLink                     ds.l   1        ; offset: $0 (0)
  471. reservedH1                 ds.l   1        ; offset: $4 (4)
  472. reservedH2                 ds.l   1        ; offset: $8 (8)
  473. ioCompletion             ds.l   1        ; offset: $C (12)
  474. ioResult                 ds.w   1        ; offset: $10 (16)
  475. saveA5                     ds.l   1        ; offset: $12 (18)
  476. reqCode                     ds.w   1        ; offset: $16 (22)
  477. msamCID                     ds.l   2        ; offset: $18 (24)
  478. sizeof                     EQU *            ; size:   $20 (32)
  479.                         ENDR
  480.  
  481. ; typedef struct PMSAMGetMSAMRecordPB  PMSAMGetMSAMRecordPB
  482. PMSAMOpenQueuesPB         RECORD    0
  483. qLink                     ds.l   1        ; offset: $0 (0)
  484. reservedH1                 ds.l   1        ; offset: $4 (4)
  485. reservedH2                 ds.l   1        ; offset: $8 (8)
  486. ioCompletion             ds.l   1        ; offset: $C (12)
  487. ioResult                 ds.w   1        ; offset: $10 (16)
  488. saveA5                     ds.l   1        ; offset: $12 (18)
  489. reqCode                     ds.w   1        ; offset: $16 (22)
  490. inQueueRef                 ds.l   1        ; offset: $18 (24)
  491. outQueueRef                 ds.l   1        ; offset: $1C (28)
  492. msamSlotID                 ds.w   1        ; offset: $20 (32)
  493. filler                     ds.l   2        ; offset: $22 (34)
  494. sizeof                     EQU *            ; size:   $2A (42)
  495.                         ENDR
  496.  
  497. ; typedef struct PMSAMOpenQueuesPB  PMSAMOpenQueuesPB
  498. ; typedef unsigned short     PMSAMStatus
  499. ; Values of PMSAMStatus 
  500.  
  501. kPMSAMStatusPending                EQU        1                    ; for inQueue and outQueue 
  502. kPMSAMStatusError                EQU        2                    ; for inQueue and outQueue 
  503. kPMSAMStatusSending                EQU        3                    ; for outQueue only 
  504. kPMSAMStatusCaching                EQU        4                    ; for inQueue only 
  505. kPMSAMStatusSent                EQU        5                    ; for outQueue only 
  506.  
  507. PMSAMSetStatusPB         RECORD    0
  508. qLink                     ds.l   1        ; offset: $0 (0)
  509. reservedH1                 ds.l   1        ; offset: $4 (4)
  510. reservedH2                 ds.l   1        ; offset: $8 (8)
  511. ioCompletion             ds.l   1        ; offset: $C (12)
  512. ioResult                 ds.w   1        ; offset: $10 (16)
  513. saveA5                     ds.l   1        ; offset: $12 (18)
  514. reqCode                     ds.w   1        ; offset: $16 (22)
  515. queueRef                 ds.l   1        ; offset: $18 (24)
  516. seqNum                     ds.l   1        ; offset: $1C (28)
  517. msgHint                     ds.l   1        ; offset: $20 (32)        ; for posting cache error,set this to 0 when report outq status 
  518. status                     ds.w   1        ; offset: $24 (36)
  519. sizeof                     EQU *            ; size:   $26 (38)
  520.                         ENDR
  521.  
  522. ; typedef struct PMSAMSetStatusPB  PMSAMSetStatusPB
  523. PMSAMLogErrorPB         RECORD    0
  524. qLink                     ds.l   1        ; offset: $0 (0)
  525. reservedH1                 ds.l   1        ; offset: $4 (4)
  526. reservedH2                 ds.l   1        ; offset: $8 (8)
  527. ioCompletion             ds.l   1        ; offset: $C (12)
  528. ioResult                 ds.w   1        ; offset: $10 (16)
  529. saveA5                     ds.l   1        ; offset: $12 (18)
  530. reqCode                     ds.w   1        ; offset: $16 (22)
  531. msamSlotID                 ds.w   1        ; offset: $18 (24)        ; 0 for PMSAM errors 
  532. logEntry                 ds.l   1        ; offset: $1A (26)
  533. filler                     ds.l   2        ; offset: $1E (30)
  534. sizeof                     EQU *            ; size:   $26 (38)
  535.                         ENDR
  536.  
  537. ; typedef struct PMSAMLogErrorPB  PMSAMLogErrorPB
  538. ;**************************************************************************************
  539.  
  540. kMailMsgSummaryVersion            EQU        1
  541.  
  542. MailMasterData             RECORD    0
  543. attrMask                 ds.l   1        ; offset: $0 (0)        ; indicates attributes present in MsgSummary 
  544. messageID                 ds.l   4        ; offset: $4 (4)
  545. replyID                     ds.l   4        ; offset: $14 (20)
  546. conversationID             ds.l   4        ; offset: $24 (36)
  547. sizeof                     EQU *            ; size:   $34 (52)
  548.                         ENDR
  549.  
  550. ; typedef struct MailMasterData  MailMasterData
  551. ; Values for addressedToMe in struct MailCoreData 
  552.  
  553. kAddressedAs_TO                    EQU        $1
  554. kAddressedAs_CC                    EQU        $2
  555. kAddressedAs_BCC                EQU        $4
  556.  
  557. MailCoreData             RECORD    0
  558. letterFlags                 ds.l   1        ; offset: $0 (0)
  559. messageSize                 ds.l   1        ; offset: $4 (4)
  560. letterIndications         ds.l   1        ; offset: $8 (8)
  561. messageType                 ds     OCECreatorType ; offset: $C (12)
  562. sendTime                 ds.l   2        ; offset: $14 (20)
  563. messageFamily             ds.l   1        ; offset: $1C (28)
  564. reserved                 ds.b   1        ; offset: $20 (32)
  565. addressedToMe             ds.b   1        ; offset: $21 (33)
  566. agentInfo                 ds.b   6        ; offset: $22 (34)        ; 6 bytes of special info [set to zero]
  567. ;    * these are variable length and even padded 
  568. sender                     ds.l   9        ; offset: $28 (40)        ; recipient's entityName (trunc)
  569. subject                     ds.l   9        ; offset: $4C (76)        ; subject maybe truncated 
  570. sizeof                     EQU *            ; size:   $70 (112)
  571.                         ENDR
  572.  
  573. ; typedef struct MailCoreData  MailCoreData
  574. MSAMMsgSummary             RECORD    0
  575. version                     ds.w   1        ; offset: $0 (0)        ; following flags are defaulted by Toolbox 
  576. msgDeleted                 ds.b   1        ; offset: $2 (2)        ; true if msg is to be deleted by PMSAM 
  577. msgUpdated                 ds.b   1        ; offset: $3 (3)        ; true if msgSummary was updated by MailManager 
  578. msgCached                 ds.b   1        ; offset: $4 (4)        ; true if msg is in the slot's InQueue 
  579. padByte                     ds.b   1        ; offset: $5 (5)
  580. masterData                 ds.l   13        ; offset: $6 (6)
  581. coreData                 ds.l   28        ; offset: $3A (58)
  582. sizeof                     EQU *            ; size:   $AA (170)
  583.                         ENDR
  584.  
  585. ; typedef struct MSAMMsgSummary  MSAMMsgSummary
  586. ; PMSAM can put up to 128 bytes of private msg summary data 
  587.  
  588. kMailMaxPMSAMMsgSummaryData        EQU        128
  589.  
  590. PMSAMCreateMsgSummaryPB RECORD    0
  591. qLink                     ds.l   1        ; offset: $0 (0)
  592. reservedH1                 ds.l   1        ; offset: $4 (4)
  593. reservedH2                 ds.l   1        ; offset: $8 (8)
  594. ioCompletion             ds.l   1        ; offset: $C (12)
  595. ioResult                 ds.w   1        ; offset: $10 (16)
  596. saveA5                     ds.l   1        ; offset: $12 (18)
  597. reqCode                     ds.w   1        ; offset: $16 (22)
  598. inQueueRef                 ds.l   1        ; offset: $18 (24)
  599. seqNum                     ds.l   1        ; offset: $1C (28)        ; <- seq of the new message 
  600. msgSummary                 ds.l   1        ; offset: $20 (32)        ; attributes and mask filled in 
  601. buffer                     ds.l   1        ; offset: $24 (36)        ; PMSAM specific data to be appended 
  602. sizeof                     EQU *            ; size:   $28 (40)
  603.                         ENDR
  604.  
  605. ; typedef struct PMSAMCreateMsgSummaryPB  PMSAMCreateMsgSummaryPB
  606. PMSAMPutMsgSummaryPB     RECORD    0
  607. qLink                     ds.l   1        ; offset: $0 (0)
  608. reservedH1                 ds.l   1        ; offset: $4 (4)
  609. reservedH2                 ds.l   1        ; offset: $8 (8)
  610. ioCompletion             ds.l   1        ; offset: $C (12)
  611. ioResult                 ds.w   1        ; offset: $10 (16)
  612. saveA5                     ds.l   1        ; offset: $12 (18)
  613. reqCode                     ds.w   1        ; offset: $16 (22)
  614. inQueueRef                 ds.l   1        ; offset: $18 (24)
  615. seqNum                     ds.l   1        ; offset: $1C (28)
  616. letterFlags                 ds.l   1        ; offset: $20 (32)        ; if not nil, then set msgStoreFlags 
  617. buffer                     ds.l   1        ; offset: $24 (36)        ; PMSAM specific data to be overwritten 
  618. sizeof                     EQU *            ; size:   $28 (40)
  619.                         ENDR
  620.  
  621. ; typedef struct PMSAMPutMsgSummaryPB  PMSAMPutMsgSummaryPB
  622. PMSAMGetMsgSummaryPB     RECORD    0
  623. qLink                     ds.l   1        ; offset: $0 (0)
  624. reservedH1                 ds.l   1        ; offset: $4 (4)
  625. reservedH2                 ds.l   1        ; offset: $8 (8)
  626. ioCompletion             ds.l   1        ; offset: $C (12)
  627. ioResult                 ds.w   1        ; offset: $10 (16)
  628. saveA5                     ds.l   1        ; offset: $12 (18)
  629. reqCode                     ds.w   1        ; offset: $16 (22)
  630. inQueueRef                 ds.l   1        ; offset: $18 (24)
  631. seqNum                     ds.l   1        ; offset: $1C (28)
  632. msgSummary                 ds.l   1        ; offset: $20 (32)        ; if not nil, then read in the msgSummary 
  633. buffer                     ds.l   1        ; offset: $24 (36)        ; PMSAM specific data to be read 
  634. msgSummaryOffset         ds.w   1        ; offset: $28 (40)        ; offset of PMSAM specific data
  635. ;                                               from start of MsgSummary 
  636. sizeof                     EQU *            ; size:   $2A (42)
  637.                         ENDR
  638.  
  639. ; typedef struct PMSAMGetMsgSummaryPB  PMSAMGetMsgSummaryPB
  640. ;**************************************************************************************
  641. ; Definitions for Server MSAMs 
  642. ;************************************************************************************
  643. ; typedef unsigned short     SMSAMAdminCode
  644. ; Values of SMSAMAdminCode 
  645.  
  646. kSMSAMNotifyFwdrSetupChange        EQU        1
  647. kSMSAMNotifyFwdrNameChange        EQU        2
  648. kSMSAMNotifyFwdrPwdChange        EQU        3
  649. kSMSAMGetDynamicFwdrParams        EQU        4
  650.  
  651. ; typedef unsigned long     SMSAMSlotChanges
  652.  
  653. kSMSAMFwdrHomeInternetChangedBit EQU        0
  654. kSMSAMFwdrConnectedToChangedBit    EQU        1
  655. kSMSAMFwdrForeignRLIsChangedBit    EQU        2
  656. kSMSAMFwdrMnMServerChangedBit    EQU        3
  657.  
  658. ; Values of SMSAMSlotChanges 
  659. kSMSAMFwdrEverythingChangedMask    EQU        -1
  660. kSMSAMFwdrHomeInternetChangedMask EQU        1 << kSMSAMFwdrHomeInternetChangedBit
  661. kSMSAMFwdrConnectedToChangedMask EQU        1 << kSMSAMFwdrConnectedToChangedBit
  662. kSMSAMFwdrForeignRLIsChangedMask EQU        1 << kSMSAMFwdrForeignRLIsChangedBit
  663. kSMSAMFwdrMnMServerChangedMask    EQU        1 << kSMSAMFwdrMnMServerChangedBit
  664.  
  665. ; kSMSAMNotifyFwdrSetupChange 
  666. SMSAMSetupChange         RECORD    0
  667. whatChanged                 ds.l   1        ; offset: $0 (0)        ;  --> bitmap of what parameters changed 
  668. serverHint                 ds     AddrBlock ; offset: $4 (4)        ;  --> try this ADAP server first 
  669. sizeof                     EQU *            ; size:   $8 (8)
  670.                         ENDR
  671.  
  672. ; typedef struct SMSAMSetupChange  SMSAMSetupChange
  673. ; kSMSAMNotifyFwdrNameChange 
  674. SMSAMNameChange         RECORD    0
  675. newName                     ds.l   65        ; offset: $0 (0)        ;  --> msams new name 
  676. serverHint                 ds     AddrBlock ; offset: $104 (260)    ;  --> try this ADAP server first 
  677. sizeof                     EQU *            ; size:   $108 (264)
  678.                         ENDR
  679.  
  680. ; typedef struct SMSAMNameChange  SMSAMNameChange
  681. ; kSMSAMNotifyFwdrPasswordChange 
  682. SMSAMPasswordChange     RECORD    0
  683. newPassword                 ds.l   65        ; offset: $0 (0)        ;  --> msams new password 
  684. serverHint                 ds     AddrBlock ; offset: $104 (260)    ;  --> try this ADAP server first 
  685. sizeof                     EQU *            ; size:   $108 (264)
  686.                         ENDR
  687.  
  688. ; typedef struct SMSAMPasswordChange  SMSAMPasswordChange
  689. ; kSMSAMGetDynamicFwdrParams 
  690. SMSAMDynamicParams         RECORD    0
  691. curDiskUsed                 ds.l   1        ; offset: $0 (0)        ; <--  amount of disk space used by msam 
  692. curMemoryUsed             ds.l   1        ; offset: $4 (4)        ; <--  amount of memory used by msam 
  693. sizeof                     EQU *            ; size:   $8 (8)
  694.                         ENDR
  695.  
  696. ; typedef struct SMSAMDynamicParams  SMSAMDynamicParams
  697. SMSAMAdminEPPCRequest     RECORD    0
  698. adminCode                 ds.w   1        ; offset: $0 (0)
  699. setupChange                 ds.l   2        ; offset: $2 (2)
  700.                          ORG 2
  701. nameChange                 ds.l   66        ; offset: $2 (2)
  702.                          ORG 2
  703. passwordChange             ds.l   66        ; offset: $2 (2)
  704.                          ORG 2
  705. dynamicParams             ds.l   2        ; offset: $2 (2)
  706.                          ORG 266
  707. sizeof                     EQU *            ; size:   $10A (266)
  708.                         ENDR
  709.  
  710. ; typedef struct SMSAMAdminEPPCRequest  SMSAMAdminEPPCRequest
  711. SMSAMSetupPB             RECORD    0
  712. qLink                     ds.l   1        ; offset: $0 (0)
  713. reservedH1                 ds.l   1        ; offset: $4 (4)
  714. reservedH2                 ds.l   1        ; offset: $8 (8)
  715. ioCompletion             ds.l   1        ; offset: $C (12)
  716. ioResult                 ds.w   1        ; offset: $10 (16)
  717. saveA5                     ds.l   1        ; offset: $12 (18)
  718. reqCode                     ds.w   1        ; offset: $16 (22)
  719. serverMSAM                 ds.l   1        ; offset: $18 (24)
  720. password                 ds.l   1        ; offset: $1C (28)
  721. gatewayType                 ds.l   1        ; offset: $20 (32)
  722. gatewayTypeDescription     ds.l   1        ; offset: $24 (36)
  723. catalogServerHint         ds     AddrBlock ; offset: $28 (40)
  724. sizeof                     EQU *            ; size:   $2C (44)
  725.                         ENDR
  726.  
  727. ; typedef struct SMSAMSetupPB  SMSAMSetupPB
  728. SMSAMStartupPB             RECORD    0
  729. qLink                     ds.l   1        ; offset: $0 (0)
  730. reservedH1                 ds.l   1        ; offset: $4 (4)
  731. reservedH2                 ds.l   1        ; offset: $8 (8)
  732. ioCompletion             ds.l   1        ; offset: $C (12)
  733. ioResult                 ds.w   1        ; offset: $10 (16)
  734. saveA5                     ds.l   1        ; offset: $12 (18)
  735. reqCode                     ds.w   1        ; offset: $16 (22)
  736. msamIdentity             ds.l   1        ; offset: $18 (24)
  737. queueRef                 ds.l   1        ; offset: $1C (28)
  738. sizeof                     EQU *            ; size:   $20 (32)
  739.                         ENDR
  740.  
  741. ; typedef struct SMSAMStartupPB  SMSAMStartupPB
  742. SMSAMShutdownPB         RECORD    0
  743. qLink                     ds.l   1        ; offset: $0 (0)
  744. reservedH1                 ds.l   1        ; offset: $4 (4)
  745. reservedH2                 ds.l   1        ; offset: $8 (8)
  746. ioCompletion             ds.l   1        ; offset: $C (12)
  747. ioResult                 ds.w   1        ; offset: $10 (16)
  748. saveA5                     ds.l   1        ; offset: $12 (18)
  749. reqCode                     ds.w   1        ; offset: $16 (22)
  750. queueRef                 ds.l   1        ; offset: $18 (24)
  751. sizeof                     EQU *            ; size:   $1C (28)
  752.                         ENDR
  753.  
  754. ; typedef struct SMSAMShutdownPB  SMSAMShutdownPB
  755. ;**************************************************************************************
  756. ; Definitions for reading and writing MSAM Letters 
  757. ;**************************************************************************************
  758. MSAMEnumeratePB         RECORD    0
  759. qLink                     ds.l   1        ; offset: $0 (0)
  760. reservedH1                 ds.l   1        ; offset: $4 (4)
  761. reservedH2                 ds.l   1        ; offset: $8 (8)
  762. ioCompletion             ds.l   1        ; offset: $C (12)
  763. ioResult                 ds.w   1        ; offset: $10 (16)
  764. saveA5                     ds.l   1        ; offset: $12 (18)
  765. reqCode                     ds.w   1        ; offset: $16 (22)
  766. queueRef                 ds.l   1        ; offset: $18 (24)
  767. startSeqNum                 ds.l   1        ; offset: $1C (28)
  768. nextSeqNum                 ds.l   1        ; offset: $20 (32)
  769. ; buffer contains a Mail Reply. Each tuple is a 
  770. ;    MSAMEnumerateInQReply when enumerating the inQueue
  771. ;    MSAMEnumerateOutQReply when enumerating the outQueue 
  772. buffer                     ds.l   3        ; offset: $24 (36)
  773. sizeof                     EQU *            ; size:   $30 (48)
  774.                         ENDR
  775.  
  776. ; typedef struct MSAMEnumeratePB  MSAMEnumeratePB
  777. MSAMEnumerateInQReply     RECORD    0
  778. seqNum                     ds.l   1        ; offset: $0 (0)
  779. msgDeleted                 ds.b   1        ; offset: $4 (4)        ; true if msg is to be deleted by PMSAM 
  780. msgUpdated                 ds.b   1        ; offset: $5 (5)        ; true if MsgSummary has been updated by TB 
  781. msgCached                 ds.b   1        ; offset: $6 (6)        ; true if msg is in the incoming queue 
  782. padByte                     ds.b   1        ; offset: $7 (7)
  783. sizeof                     EQU *            ; size:   $8 (8)
  784.                         ENDR
  785.  
  786. ; typedef struct MSAMEnumerateInQReply  MSAMEnumerateInQReply
  787. MSAMEnumerateOutQReply     RECORD    0
  788. seqNum                     ds.l   1        ; offset: $0 (0)
  789. done                     ds.b   1        ; offset: $4 (4)        ; true if all responsible recipients have been processed 
  790. priority                 ds.b   1        ; offset: $5 (5)
  791. msgFamily                 ds.l   1        ; offset: $6 (6)
  792. approxSize                 ds.l   1        ; offset: $A (10)
  793. tunnelForm                 ds.b   1        ; offset: $E (14)        ; true if this letter has to be tunnelled 
  794. padByte                     ds.b   1        ; offset: $F (15)
  795. nextHop                     ds.l   9        ; offset: $10 (16)        ; valid if tunnelForm is true 
  796. msgType                     ds     OCECreatorType ; offset: $34 (52)
  797. sizeof                     EQU *            ; size:   $3C (60)
  798.                         ENDR
  799.  
  800. ; typedef struct MSAMEnumerateOutQReply  MSAMEnumerateOutQReply
  801. MSAMDeletePB             RECORD    0
  802. qLink                     ds.l   1        ; offset: $0 (0)
  803. reservedH1                 ds.l   1        ; offset: $4 (4)
  804. reservedH2                 ds.l   1        ; offset: $8 (8)
  805. ioCompletion             ds.l   1        ; offset: $C (12)
  806. ioResult                 ds.w   1        ; offset: $10 (16)
  807. saveA5                     ds.l   1        ; offset: $12 (18)
  808. reqCode                     ds.w   1        ; offset: $16 (22)
  809. queueRef                 ds.l   1        ; offset: $18 (24)
  810. seqNum                     ds.l   1        ; offset: $1C (28)
  811. msgOnly                     ds.b   1        ; offset: $20 (32)        ; only valid for PMSAM & inQueue 
  812. ; set true to delete message but not msgSummary 
  813. padByte                     ds.b   1        ; offset: $21 (33)
  814. ; only valid for SMSAM & tunnelled messages 
  815. result                     ds.w   1        ; offset: $22 (34)
  816. sizeof                     EQU *            ; size:   $24 (36)
  817.                         ENDR
  818.  
  819. ; typedef struct MSAMDeletePB  MSAMDeletePB
  820. MSAMOpenPB                 RECORD    0
  821. qLink                     ds.l   1        ; offset: $0 (0)
  822. reservedH1                 ds.l   1        ; offset: $4 (4)
  823. reservedH2                 ds.l   1        ; offset: $8 (8)
  824. ioCompletion             ds.l   1        ; offset: $C (12)
  825. ioResult                 ds.w   1        ; offset: $10 (16)
  826. saveA5                     ds.l   1        ; offset: $12 (18)
  827. reqCode                     ds.w   1        ; offset: $16 (22)
  828. queueRef                 ds.l   1        ; offset: $18 (24)
  829. seqNum                     ds.l   1        ; offset: $1C (28)
  830. mailMsgRef                 ds.l   1        ; offset: $20 (32)
  831. sizeof                     EQU *            ; size:   $24 (36)
  832.                         ENDR
  833.  
  834. ; typedef struct MSAMOpenPB  MSAMOpenPB
  835. MSAMOpenNestedPB         RECORD    0
  836. qLink                     ds.l   1        ; offset: $0 (0)
  837. reservedH1                 ds.l   1        ; offset: $4 (4)
  838. reservedH2                 ds.l   1        ; offset: $8 (8)
  839. ioCompletion             ds.l   1        ; offset: $C (12)
  840. ioResult                 ds.w   1        ; offset: $10 (16)
  841. saveA5                     ds.l   1        ; offset: $12 (18)
  842. reqCode                     ds.w   1        ; offset: $16 (22)
  843. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  844. nestedRef                 ds.l   1        ; offset: $1C (28)
  845. sizeof                     EQU *            ; size:   $20 (32)
  846.                         ENDR
  847.  
  848. ; typedef struct MSAMOpenNestedPB  MSAMOpenNestedPB
  849. MSAMClosePB             RECORD    0
  850. qLink                     ds.l   1        ; offset: $0 (0)
  851. reservedH1                 ds.l   1        ; offset: $4 (4)
  852. reservedH2                 ds.l   1        ; offset: $8 (8)
  853. ioCompletion             ds.l   1        ; offset: $C (12)
  854. ioResult                 ds.w   1        ; offset: $10 (16)
  855. saveA5                     ds.l   1        ; offset: $12 (18)
  856. reqCode                     ds.w   1        ; offset: $16 (22)
  857. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  858. sizeof                     EQU *            ; size:   $1C (28)
  859.                         ENDR
  860.  
  861. ; typedef struct MSAMClosePB  MSAMClosePB
  862. MSAMGetMsgHeaderPB         RECORD    0
  863. qLink                     ds.l   1        ; offset: $0 (0)
  864. reservedH1                 ds.l   1        ; offset: $4 (4)
  865. reservedH2                 ds.l   1        ; offset: $8 (8)
  866. ioCompletion             ds.l   1        ; offset: $C (12)
  867. ioResult                 ds.w   1        ; offset: $10 (16)
  868. saveA5                     ds.l   1        ; offset: $12 (18)
  869. reqCode                     ds.w   1        ; offset: $16 (22)
  870. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  871. selector                 ds.b   1        ; offset: $1C (28)
  872. filler1                     ds.b   1        ; offset: $1D (29)
  873. offset                     ds.l   1        ; offset: $1E (30)
  874. buffer                     ds.l   3        ; offset: $22 (34)
  875. remaining                 ds.l   1        ; offset: $2E (46)
  876. sizeof                     EQU *            ; size:   $32 (50)
  877.                         ENDR
  878.  
  879. ; typedef struct MSAMGetMsgHeaderPB  MSAMGetMsgHeaderPB
  880. MSAMGetAttributesPB     RECORD    0
  881. qLink                     ds.l   1        ; offset: $0 (0)
  882. reservedH1                 ds.l   1        ; offset: $4 (4)
  883. reservedH2                 ds.l   1        ; offset: $8 (8)
  884. ioCompletion             ds.l   1        ; offset: $C (12)
  885. ioResult                 ds.w   1        ; offset: $10 (16)
  886. saveA5                     ds.l   1        ; offset: $12 (18)
  887. reqCode                     ds.w   1        ; offset: $16 (22)
  888. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  889. requestMask                 ds.l   1        ; offset: $1C (28)        ; kMailIndicationsBit thru kMailSubjectBit 
  890. buffer                     ds.l   3        ; offset: $20 (32)
  891. ;    buffer returned will contain the attribute values of 
  892. ;        the attributes indicated in responseMask, 
  893. ;        from the attribute indicated by the least significant bit set
  894. ;        to the attribute indicated by the most significant bit set.
  895. ;        Note that recipients - from, to, cc, bcc cannot be read using
  896. ;        this call. Use GetRecipients to read these. 
  897. responseMask             ds.l   1        ; offset: $2C (44)
  898. more                     ds.b   1        ; offset: $30 (48)
  899. filler1                     ds.b   1        ; offset: $31 (49)
  900. sizeof                     EQU *            ; size:   $32 (50)
  901.                         ENDR
  902.  
  903. ; typedef struct MSAMGetAttributesPB  MSAMGetAttributesPB
  904. ; attrID value to get resolved recipient list 
  905.  
  906. kMailResolvedList                EQU        0
  907.  
  908. MailOriginalRecipient     RECORD    0
  909. index                     ds.w   1        ; offset: $0 (0)
  910. sizeof                     EQU *            ; size:   $2 (2)
  911.                         ENDR
  912.  
  913. ; Followed by OCEPackedRecipient 
  914. ; typedef struct MailOriginalRecipient  MailOriginalRecipient
  915. MailResolvedRecipient     RECORD    0
  916. index                     ds.w   1        ; offset: $0 (0)
  917. recipientFlags             ds.w   1        ; offset: $2 (2)
  918. responsible                 ds.b   1        ; offset: $4 (4)
  919. padByte                     ds.b   1        ; offset: $5 (5)
  920. sizeof                     EQU *            ; size:   $6 (6)
  921.                         ENDR
  922.  
  923. ; Followed by OCEPackedRecipient 
  924. ; typedef struct MailResolvedRecipient  MailResolvedRecipient
  925. MSAMGetRecipientsPB     RECORD    0
  926. qLink                     ds.l   1        ; offset: $0 (0)
  927. reservedH1                 ds.l   1        ; offset: $4 (4)
  928. reservedH2                 ds.l   1        ; offset: $8 (8)
  929. ioCompletion             ds.l   1        ; offset: $C (12)
  930. ioResult                 ds.w   1        ; offset: $10 (16)
  931. saveA5                     ds.l   1        ; offset: $12 (18)
  932. reqCode                     ds.w   1        ; offset: $16 (22)
  933. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  934. attrID                     ds.w   1        ; offset: $1C (28)        ; kMailFromBit thru kMailBccBit 
  935. startIndex                 ds.w   1        ; offset: $1E (30)        ; starts at 1 
  936. buffer                     ds.l   3        ; offset: $20 (32)
  937. ;     buffer contains a Mail Reply. Each tuple is a
  938. ;        MailOriginalRecipient if getting original recipients 
  939. ;                                ie the attrID is kMail[From, To, Cc, Bcc]Bit
  940. ;        MailResolvedRecipient if getting resolved reicpients
  941. ;                                ie the attrID is kMailResolvedList
  942. ;        Both tuples are word alligned.  
  943. nextIndex                 ds.w   1        ; offset: $2C (44)
  944. more                     ds.b   1        ; offset: $2E (46)
  945. filler1                     ds.b   1        ; offset: $2F (47)
  946. sizeof                     EQU *            ; size:   $30 (48)
  947.                         ENDR
  948.  
  949. ; typedef struct MSAMGetRecipientsPB  MSAMGetRecipientsPB
  950. MSAMGetContentPB         RECORD    0
  951. qLink                     ds.l   1        ; offset: $0 (0)
  952. reservedH1                 ds.l   1        ; offset: $4 (4)
  953. reservedH2                 ds.l   1        ; offset: $8 (8)
  954. ioCompletion             ds.l   1        ; offset: $C (12)
  955. ioResult                 ds.w   1        ; offset: $10 (16)
  956. saveA5                     ds.l   1        ; offset: $12 (18)
  957. reqCode                     ds.w   1        ; offset: $16 (22)
  958. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  959. segmentMask                 ds.w   1        ; offset: $1C (28)
  960. buffer                     ds.l   3        ; offset: $1E (30)
  961. textScrap                 ds.l   1        ; offset: $2A (42)
  962. script                     ds.w   1        ; offset: $2E (46)
  963. segmentType                 ds.w   1        ; offset: $30 (48)
  964. endOfScript                 ds.b   1        ; offset: $32 (50)
  965. endOfSegment             ds.b   1        ; offset: $33 (51)
  966. endOfContent             ds.b   1        ; offset: $34 (52)
  967. filler1                     ds.b   1        ; offset: $35 (53)
  968. segmentLength             ds.l   1        ; offset: $36 (54)        ; NEW: <-  valid first call in a segment 
  969. segmentID                 ds.l   1        ; offset: $3A (58)        ; NEW: <-> identifier for this segment 
  970. sizeof                     EQU *            ; size:   $3E (62)
  971.                         ENDR
  972.  
  973. ; typedef struct MSAMGetContentPB  MSAMGetContentPB
  974. MSAMGetEnclosurePB         RECORD    0
  975. qLink                     ds.l   1        ; offset: $0 (0)
  976. reservedH1                 ds.l   1        ; offset: $4 (4)
  977. reservedH2                 ds.l   1        ; offset: $8 (8)
  978. ioCompletion             ds.l   1        ; offset: $C (12)
  979. ioResult                 ds.w   1        ; offset: $10 (16)
  980. saveA5                     ds.l   1        ; offset: $12 (18)
  981. reqCode                     ds.w   1        ; offset: $16 (22)
  982. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  983. contentEnclosure         ds.b   1        ; offset: $1C (28)
  984. padByte                     ds.b   1        ; offset: $1D (29)
  985. buffer                     ds.l   3        ; offset: $1E (30)
  986. endOfFile                 ds.b   1        ; offset: $2A (42)
  987. endOfEnclosures             ds.b   1        ; offset: $2B (43)
  988. sizeof                     EQU *            ; size:   $2C (44)
  989.                         ENDR
  990.  
  991. ; typedef struct MSAMGetEnclosurePB  MSAMGetEnclosurePB
  992. MailBlockInfo             RECORD    0
  993. blockType                 ds     OCECreatorType ; offset: $0 (0)
  994. offset                     ds.l   1        ; offset: $8 (8)
  995. blockLength                 ds.l   1        ; offset: $C (12)
  996. sizeof                     EQU *            ; size:   $10 (16)
  997.                         ENDR
  998.  
  999. ; typedef struct MailBlockInfo  MailBlockInfo
  1000. MSAMEnumerateBlocksPB     RECORD    0
  1001. qLink                     ds.l   1        ; offset: $0 (0)
  1002. reservedH1                 ds.l   1        ; offset: $4 (4)
  1003. reservedH2                 ds.l   1        ; offset: $8 (8)
  1004. ioCompletion             ds.l   1        ; offset: $C (12)
  1005. ioResult                 ds.w   1        ; offset: $10 (16)
  1006. saveA5                     ds.l   1        ; offset: $12 (18)
  1007. reqCode                     ds.w   1        ; offset: $16 (22)
  1008. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1009. startIndex                 ds.w   1        ; offset: $1C (28)        ; starts at 1 
  1010. buffer                     ds.l   3        ; offset: $1E (30)
  1011. ;     buffer contains a Mail Reply. Each tuple is a MailBlockInfo 
  1012. nextIndex                 ds.w   1        ; offset: $2A (42)
  1013. more                     ds.b   1        ; offset: $2C (44)
  1014. filler1                     ds.b   1        ; offset: $2D (45)
  1015. sizeof                     EQU *            ; size:   $2E (46)
  1016.                         ENDR
  1017.  
  1018. ; typedef struct MSAMEnumerateBlocksPB  MSAMEnumerateBlocksPB
  1019. MSAMGetBlockPB             RECORD    0
  1020. qLink                     ds.l   1        ; offset: $0 (0)
  1021. reservedH1                 ds.l   1        ; offset: $4 (4)
  1022. reservedH2                 ds.l   1        ; offset: $8 (8)
  1023. ioCompletion             ds.l   1        ; offset: $C (12)
  1024. ioResult                 ds.w   1        ; offset: $10 (16)
  1025. saveA5                     ds.l   1        ; offset: $12 (18)
  1026. reqCode                     ds.w   1        ; offset: $16 (22)
  1027. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1028. blockType                 ds     OCECreatorType ; offset: $1C (28)
  1029. blockIndex                 ds.w   1        ; offset: $24 (36)
  1030. buffer                     ds.l   3        ; offset: $26 (38)
  1031. dataOffset                 ds.l   1        ; offset: $32 (50)
  1032. endOfBlock                 ds.b   1        ; offset: $36 (54)
  1033. padByte                     ds.b   1        ; offset: $37 (55)
  1034. remaining                 ds.l   1        ; offset: $38 (56)
  1035. sizeof                     EQU *            ; size:   $3C (60)
  1036.                         ENDR
  1037.  
  1038. ; typedef struct MSAMGetBlockPB  MSAMGetBlockPB
  1039. ; YOU SHOULD BE USING THE NEW FORM OF MARK RECIPIENTS
  1040. ; * THIS VERSION IS MUCH SLOWER AND KEPT FOR COMPATIBILITY
  1041. ; * REASONS.
  1042. ;
  1043. ; not valid for tunnel form letters 
  1044. MSAMMarkRecipientsPB     RECORD    0
  1045. qLink                     ds.l   1        ; offset: $0 (0)
  1046. reservedH1                 ds.l   1        ; offset: $4 (4)
  1047. reservedH2                 ds.l   1        ; offset: $8 (8)
  1048. ioCompletion             ds.l   1        ; offset: $C (12)
  1049. ioResult                 ds.w   1        ; offset: $10 (16)
  1050. saveA5                     ds.l   1        ; offset: $12 (18)
  1051. reqCode                     ds.w   1        ; offset: $16 (22)
  1052. queueRef                 ds.l   1        ; offset: $18 (24)
  1053. seqNum                     ds.l   1        ; offset: $1C (28)
  1054. ;     buffer contains a Mail Reply. Each tuple is an unsigned short,
  1055. ;        the index of a recipient to be marked. 
  1056. buffer                     ds.l   3        ; offset: $20 (32)
  1057. sizeof                     EQU *            ; size:   $2C (44)
  1058.                         ENDR
  1059.  
  1060. ; typedef struct MSAMMarkRecipientsPB  MSAMMarkRecipientsPB
  1061. ; * same as MSAMMarkRecipients except it takes a mailMsgRef instead of 
  1062. ; * queueRef, seqNum 
  1063. ;
  1064. ; not valid for tunnel form letters 
  1065. MSAMnMarkRecipientsPB     RECORD    0
  1066. qLink                     ds.l   1        ; offset: $0 (0)
  1067. reservedH1                 ds.l   1        ; offset: $4 (4)
  1068. reservedH2                 ds.l   1        ; offset: $8 (8)
  1069. ioCompletion             ds.l   1        ; offset: $C (12)
  1070. ioResult                 ds.w   1        ; offset: $10 (16)
  1071. saveA5                     ds.l   1        ; offset: $12 (18)
  1072. reqCode                     ds.w   1        ; offset: $16 (22)
  1073. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1074. ;     buffer contains a Mail Reply. Each tuple is an unsigned short,
  1075. ;        the index of a recipient to be marked. 
  1076. buffer                     ds.l   3        ; offset: $1C (28)
  1077. sizeof                     EQU *            ; size:   $28 (40)
  1078.                         ENDR
  1079.  
  1080. ; typedef struct MSAMnMarkRecipientsPB  MSAMnMarkRecipientsPB
  1081. ;**************************************************************************************
  1082. MSAMCreatePB             RECORD    0
  1083. qLink                     ds.l   1        ; offset: $0 (0)
  1084. reservedH1                 ds.l   1        ; offset: $4 (4)
  1085. reservedH2                 ds.l   1        ; offset: $8 (8)
  1086. ioCompletion             ds.l   1        ; offset: $C (12)
  1087. ioResult                 ds.w   1        ; offset: $10 (16)
  1088. saveA5                     ds.l   1        ; offset: $12 (18)
  1089. reqCode                     ds.w   1        ; offset: $16 (22)
  1090. queueRef                 ds.l   1        ; offset: $18 (24)
  1091. asLetter                 ds.b   1        ; offset: $1C (28)        ; indicate if we should create as letter or msg 
  1092. filler1                     ds.b   1        ; offset: $1D (29)
  1093. msgType                     ds     IPMMsgType ; offset: $1E (30)    ; up to application discretion: must be of IPMSenderTag
  1094. ;                                           kIPMOSFormatType for asLetter=true 
  1095. refCon                     ds.l   1        ; offset: $42 (66)        ; for messages only 
  1096. seqNum                     ds.l   1        ; offset: $46 (70)        ; set if creating message in the inQueue 
  1097. tunnelForm                 ds.b   1        ; offset: $4A (74)        ; if true tunnelForm else newForm 
  1098. bccRecipients             ds.b   1        ; offset: $4B (75)        ; true if creating letter with bcc recipients 
  1099. newRef                     ds.l   1        ; offset: $4C (76)
  1100. sizeof                     EQU *            ; size:   $50 (80)
  1101.                         ENDR
  1102.  
  1103. ; typedef struct MSAMCreatePB  MSAMCreatePB
  1104. MSAMBeginNestedPB         RECORD    0
  1105. qLink                     ds.l   1        ; offset: $0 (0)
  1106. reservedH1                 ds.l   1        ; offset: $4 (4)
  1107. reservedH2                 ds.l   1        ; offset: $8 (8)
  1108. ioCompletion             ds.l   1        ; offset: $C (12)
  1109. ioResult                 ds.w   1        ; offset: $10 (16)
  1110. saveA5                     ds.l   1        ; offset: $12 (18)
  1111. reqCode                     ds.w   1        ; offset: $16 (22)
  1112. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1113. refCon                     ds.l   1        ; offset: $1C (28)        ; for messages only 
  1114. msgType                     ds     IPMMsgType ; offset: $20 (32)
  1115. sizeof                     EQU *            ; size:   $44 (68)
  1116.                         ENDR
  1117.  
  1118. ; typedef struct MSAMBeginNestedPB  MSAMBeginNestedPB
  1119. MSAMEndNestedPB         RECORD    0
  1120. qLink                     ds.l   1        ; offset: $0 (0)
  1121. reservedH1                 ds.l   1        ; offset: $4 (4)
  1122. reservedH2                 ds.l   1        ; offset: $8 (8)
  1123. ioCompletion             ds.l   1        ; offset: $C (12)
  1124. ioResult                 ds.w   1        ; offset: $10 (16)
  1125. saveA5                     ds.l   1        ; offset: $12 (18)
  1126. reqCode                     ds.w   1        ; offset: $16 (22)
  1127. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1128. sizeof                     EQU *            ; size:   $1C (28)
  1129.                         ENDR
  1130.  
  1131. ; typedef struct MSAMEndNestedPB  MSAMEndNestedPB
  1132. MSAMSubmitPB             RECORD    0
  1133. qLink                     ds.l   1        ; offset: $0 (0)
  1134. reservedH1                 ds.l   1        ; offset: $4 (4)
  1135. reservedH2                 ds.l   1        ; offset: $8 (8)
  1136. ioCompletion             ds.l   1        ; offset: $C (12)
  1137. ioResult                 ds.w   1        ; offset: $10 (16)
  1138. saveA5                     ds.l   1        ; offset: $12 (18)
  1139. reqCode                     ds.w   1        ; offset: $16 (22)
  1140. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1141. submitFlag                 ds.b   1        ; offset: $1C (28)
  1142. padByte                     ds.b   1        ; offset: $1D (29)
  1143. msgID                     ds.l   4        ; offset: $1E (30)
  1144. sizeof                     EQU *            ; size:   $2E (46)
  1145.                         ENDR
  1146.  
  1147. ; typedef struct MSAMSubmitPB  MSAMSubmitPB
  1148. MSAMPutMsgHeaderPB         RECORD    0
  1149. qLink                     ds.l   1        ; offset: $0 (0)
  1150. reservedH1                 ds.l   1        ; offset: $4 (4)
  1151. reservedH2                 ds.l   1        ; offset: $8 (8)
  1152. ioCompletion             ds.l   1        ; offset: $C (12)
  1153. ioResult                 ds.w   1        ; offset: $10 (16)
  1154. saveA5                     ds.l   1        ; offset: $12 (18)
  1155. reqCode                     ds.w   1        ; offset: $16 (22)
  1156. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1157. replyQueue                 ds.l   1        ; offset: $1C (28)
  1158. sender                     ds.l   1        ; offset: $20 (32)
  1159. deliveryNotification     ds.b   1        ; offset: $24 (36)
  1160. priority                 ds.b   1        ; offset: $25 (37)
  1161. sizeof                     EQU *            ; size:   $26 (38)
  1162.                         ENDR
  1163.  
  1164. ; typedef struct MSAMPutMsgHeaderPB  MSAMPutMsgHeaderPB
  1165. MSAMPutAttributePB         RECORD    0
  1166. qLink                     ds.l   1        ; offset: $0 (0)
  1167. reservedH1                 ds.l   1        ; offset: $4 (4)
  1168. reservedH2                 ds.l   1        ; offset: $8 (8)
  1169. ioCompletion             ds.l   1        ; offset: $C (12)
  1170. ioResult                 ds.w   1        ; offset: $10 (16)
  1171. saveA5                     ds.l   1        ; offset: $12 (18)
  1172. reqCode                     ds.w   1        ; offset: $16 (22)
  1173. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1174. attrID                     ds.w   1        ; offset: $1C (28)        ; kMailIndicationsBit thru kMailSubjectBit 
  1175. buffer                     ds.l   3        ; offset: $1E (30)
  1176. sizeof                     EQU *            ; size:   $2A (42)
  1177.                         ENDR
  1178.  
  1179. ; typedef struct MSAMPutAttributePB  MSAMPutAttributePB
  1180. MSAMPutRecipientPB         RECORD    0
  1181. qLink                     ds.l   1        ; offset: $0 (0)
  1182. reservedH1                 ds.l   1        ; offset: $4 (4)
  1183. reservedH2                 ds.l   1        ; offset: $8 (8)
  1184. ioCompletion             ds.l   1        ; offset: $C (12)
  1185. ioResult                 ds.w   1        ; offset: $10 (16)
  1186. saveA5                     ds.l   1        ; offset: $12 (18)
  1187. reqCode                     ds.w   1        ; offset: $16 (22)
  1188. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1189. attrID                     ds.w   1        ; offset: $1C (28)        ; kMailFromBit thru kMailBccBit 
  1190. recipient                 ds.l   1        ; offset: $1E (30)
  1191. responsible                 ds.b   1        ; offset: $22 (34)        ; valid for server and message msams only 
  1192. filler1                     ds.b   1        ; offset: $23 (35)
  1193. sizeof                     EQU *            ; size:   $24 (36)
  1194.                         ENDR
  1195.  
  1196. ; typedef struct MSAMPutRecipientPB  MSAMPutRecipientPB
  1197. MSAMPutContentPB         RECORD    0
  1198. qLink                     ds.l   1        ; offset: $0 (0)
  1199. reservedH1                 ds.l   1        ; offset: $4 (4)
  1200. reservedH2                 ds.l   1        ; offset: $8 (8)
  1201. ioCompletion             ds.l   1        ; offset: $C (12)
  1202. ioResult                 ds.w   1        ; offset: $10 (16)
  1203. saveA5                     ds.l   1        ; offset: $12 (18)
  1204. reqCode                     ds.w   1        ; offset: $16 (22)
  1205. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1206. segmentType                 ds.w   1        ; offset: $1C (28)
  1207. append                     ds.b   1        ; offset: $1E (30)
  1208. padByte                     ds.b   1        ; offset: $1F (31)
  1209. buffer                     ds.l   3        ; offset: $20 (32)
  1210. textScrap                 ds.l   1        ; offset: $2C (44)
  1211. startNewScript             ds.b   1        ; offset: $30 (48)
  1212. filler1                     ds.b   1        ; offset: $31 (49)
  1213. script                     ds.w   1        ; offset: $32 (50)        ; valid only if startNewScript is true 
  1214. sizeof                     EQU *            ; size:   $34 (52)
  1215.                         ENDR
  1216.  
  1217. ; typedef struct MSAMPutContentPB  MSAMPutContentPB
  1218. MSAMPutEnclosurePB         RECORD    0
  1219. qLink                     ds.l   1        ; offset: $0 (0)
  1220. reservedH1                 ds.l   1        ; offset: $4 (4)
  1221. reservedH2                 ds.l   1        ; offset: $8 (8)
  1222. ioCompletion             ds.l   1        ; offset: $C (12)
  1223. ioResult                 ds.w   1        ; offset: $10 (16)
  1224. saveA5                     ds.l   1        ; offset: $12 (18)
  1225. reqCode                     ds.w   1        ; offset: $16 (22)
  1226. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1227. contentEnclosure         ds.b   1        ; offset: $1C (28)
  1228. padByte                     ds.b   1        ; offset: $1D (29)
  1229. hfs                         ds.b   1        ; offset: $1E (30)        ; true => in file system, false => in memory 
  1230. append                     ds.b   1        ; offset: $1F (31)
  1231. buffer                     ds.l   3        ; offset: $20 (32)        ; Unused if hfs == true 
  1232. enclosure                 ds     FSSpec    ; offset: $2C (44)
  1233. addlInfo                 ds.l   4        ; offset: $72 (114)
  1234. sizeof                     EQU *            ; size:   $82 (130)
  1235.                         ENDR
  1236.  
  1237. ; typedef struct MSAMPutEnclosurePB  MSAMPutEnclosurePB
  1238. MSAMPutBlockPB             RECORD    0
  1239. qLink                     ds.l   1        ; offset: $0 (0)
  1240. reservedH1                 ds.l   1        ; offset: $4 (4)
  1241. reservedH2                 ds.l   1        ; offset: $8 (8)
  1242. ioCompletion             ds.l   1        ; offset: $C (12)
  1243. ioResult                 ds.w   1        ; offset: $10 (16)
  1244. saveA5                     ds.l   1        ; offset: $12 (18)
  1245. reqCode                     ds.w   1        ; offset: $16 (22)
  1246. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1247. refCon                     ds.l   1        ; offset: $1C (28)        ; for messages only 
  1248. blockType                 ds     OCECreatorType ; offset: $20 (32)
  1249. append                     ds.b   1        ; offset: $28 (40)
  1250. filler1                     ds.b   1        ; offset: $29 (41)
  1251. buffer                     ds.l   3        ; offset: $2A (42)
  1252. mode                     ds.w   1        ; offset: $36 (54)        ; if blockType is kMailTunnelLtrType or kMailHopInfoType
  1253. ;                                       mode is assumed to be kMailFromMark 
  1254. offset                     ds.l   1        ; offset: $38 (56)
  1255. sizeof                     EQU *            ; size:   $3C (60)
  1256.                         ENDR
  1257.  
  1258. ; typedef struct MSAMPutBlockPB  MSAMPutBlockPB
  1259. ;**************************************************************************************
  1260. MSAMCreateReportPB         RECORD    0
  1261. qLink                     ds.l   1        ; offset: $0 (0)
  1262. reservedH1                 ds.l   1        ; offset: $4 (4)
  1263. reservedH2                 ds.l   1        ; offset: $8 (8)
  1264. ioCompletion             ds.l   1        ; offset: $C (12)
  1265. ioResult                 ds.w   1        ; offset: $10 (16)
  1266. saveA5                     ds.l   1        ; offset: $12 (18)
  1267. reqCode                     ds.w   1        ; offset: $16 (22)
  1268. queueRef                 ds.l   1        ; offset: $18 (24)        ; to distinguish personal and server MSAMs 
  1269. mailMsgRef                 ds.l   1        ; offset: $1C (28)
  1270. msgID                     ds.l   4        ; offset: $20 (32)        ; kMailLetterIDBit of letter being reported upon 
  1271. sender                     ds.l   1        ; offset: $30 (48)        ; sender of the letter you are creating report on 
  1272. sizeof                     EQU *            ; size:   $34 (52)
  1273.                         ENDR
  1274.  
  1275. ; typedef struct MSAMCreateReportPB  MSAMCreateReportPB
  1276. MSAMPutRecipientReportPB RECORD    0
  1277. qLink                     ds.l   1        ; offset: $0 (0)
  1278. reservedH1                 ds.l   1        ; offset: $4 (4)
  1279. reservedH2                 ds.l   1        ; offset: $8 (8)
  1280. ioCompletion             ds.l   1        ; offset: $C (12)
  1281. ioResult                 ds.w   1        ; offset: $10 (16)
  1282. saveA5                     ds.l   1        ; offset: $12 (18)
  1283. reqCode                     ds.w   1        ; offset: $16 (22)
  1284. mailMsgRef                 ds.l   1        ; offset: $18 (24)
  1285. recipientIndex             ds.w   1        ; offset: $1C (28)        ; recipient index in the original letter 
  1286. result                     ds.w   1        ; offset: $1E (30)        ; result of sending the recipient 
  1287. sizeof                     EQU *            ; size:   $20 (32)
  1288.                         ENDR
  1289.  
  1290. ; typedef struct MSAMPutRecipientReportPB  MSAMPutRecipientReportPB
  1291. ;**************************************************************************************
  1292. MailWakeupPMSAMPB         RECORD    0
  1293. qLink                     ds.l   1        ; offset: $0 (0)
  1294. reservedH1                 ds.l   1        ; offset: $4 (4)
  1295. reservedH2                 ds.l   1        ; offset: $8 (8)
  1296. ioCompletion             ds.l   1        ; offset: $C (12)
  1297. ioResult                 ds.w   1        ; offset: $10 (16)
  1298. saveA5                     ds.l   1        ; offset: $12 (18)
  1299. reqCode                     ds.w   1        ; offset: $16 (22)
  1300. pmsamCID                 ds.l   2        ; offset: $18 (24)
  1301. mailSlotID                 ds.w   1        ; offset: $20 (32)
  1302. sizeof                     EQU *            ; size:   $22 (34)
  1303.                         ENDR
  1304.  
  1305. ; typedef struct MailWakeupPMSAMPB  MailWakeupPMSAMPB
  1306. MailCreateMailSlotPB     RECORD    0
  1307. qLink                     ds.l   1        ; offset: $0 (0)
  1308. reservedH1                 ds.l   1        ; offset: $4 (4)
  1309. reservedH2                 ds.l   1        ; offset: $8 (8)
  1310. ioCompletion             ds.l   1        ; offset: $C (12)
  1311. ioResult                 ds.w   1        ; offset: $10 (16)
  1312. saveA5                     ds.l   1        ; offset: $12 (18)
  1313. reqCode                     ds.w   1        ; offset: $16 (22)
  1314. mailboxRef                 ds.l   1        ; offset: $18 (24)
  1315. timeout                     ds.l   1        ; offset: $1C (28)
  1316. pmsamCID                 ds.l   2        ; offset: $20 (32)
  1317. smca                     ds.l   4        ; offset: $28 (40)
  1318. sizeof                     EQU *            ; size:   $38 (56)
  1319.                         ENDR
  1320.  
  1321. ; typedef struct MailCreateMailSlotPB  MailCreateMailSlotPB
  1322. MailModifyMailSlotPB     RECORD    0
  1323. qLink                     ds.l   1        ; offset: $0 (0)
  1324. reservedH1                 ds.l   1        ; offset: $4 (4)
  1325. reservedH2                 ds.l   1        ; offset: $8 (8)
  1326. ioCompletion             ds.l   1        ; offset: $C (12)
  1327. ioResult                 ds.w   1        ; offset: $10 (16)
  1328. saveA5                     ds.l   1        ; offset: $12 (18)
  1329. reqCode                     ds.w   1        ; offset: $16 (22)
  1330. mailboxRef                 ds.l   1        ; offset: $18 (24)
  1331. timeout                     ds.l   1        ; offset: $1C (28)
  1332. pmsamCID                 ds.l   2        ; offset: $20 (32)
  1333. smca                     ds.l   4        ; offset: $28 (40)
  1334. sizeof                     EQU *            ; size:   $38 (56)
  1335.                         ENDR
  1336.  
  1337. ; typedef struct MailModifyMailSlotPB  MailModifyMailSlotPB
  1338. ;**************************************************************************************
  1339. MSAMParam                 RECORD    0
  1340. qLink                     ds.l   1        ; offset: $0 (0)
  1341. reservedH1                 ds.l   1        ; offset: $4 (4)
  1342. reservedH2                 ds.l   1        ; offset: $8 (8)
  1343. ioCompletion             ds.l   1        ; offset: $C (12)
  1344. ioResult                 ds.w   1        ; offset: $10 (16)
  1345. saveA5                     ds.l   1        ; offset: $12 (18)
  1346. reqCode                     ds.w   1        ; offset: $16 (22)
  1347.                          ORG 0
  1348. pmsamGetMSAMRecord         ds.l   8        ; offset: $0 (0)
  1349.                          ORG 0
  1350. pmsamOpenQueues             ds.w   21        ; offset: $0 (0)
  1351.                          ORG 0
  1352. pmsamSetStatus             ds.w   19        ; offset: $0 (0)
  1353.                          ORG 0
  1354. pmsamLogError             ds.w   19        ; offset: $0 (0)
  1355.                          ORG 0
  1356. smsamSetup                 ds.l   11        ; offset: $0 (0)
  1357.                          ORG 0
  1358. smsamStartup             ds.l   8        ; offset: $0 (0)
  1359.                          ORG 0
  1360. smsamShutdown             ds.l   7        ; offset: $0 (0)
  1361.                          ORG 0
  1362. msamEnumerate             ds.l   12        ; offset: $0 (0)
  1363.                          ORG 0
  1364. msamDelete                 ds.l   9        ; offset: $0 (0)
  1365.                          ORG 0
  1366. msamOpen                 ds.l   9        ; offset: $0 (0)
  1367.                          ORG 0
  1368. msamOpenNested             ds.l   8        ; offset: $0 (0)
  1369.                          ORG 0
  1370. msamClose                 ds.l   7        ; offset: $0 (0)
  1371.                          ORG 0
  1372. msamGetMsgHeader         ds.w   25        ; offset: $0 (0)
  1373.                          ORG 0
  1374. msamGetAttributes         ds.w   25        ; offset: $0 (0)
  1375.                          ORG 0
  1376. msamGetRecipients         ds.l   12        ; offset: $0 (0)
  1377.                          ORG 0
  1378. msamGetContent             ds.w   31        ; offset: $0 (0)
  1379.                          ORG 0
  1380. msamGetEnclosure         ds.l   11        ; offset: $0 (0)
  1381.                          ORG 0
  1382. msamEnumerateBlocks         ds.w   23        ; offset: $0 (0)
  1383.                          ORG 0
  1384. msamGetBlock             ds.l   15        ; offset: $0 (0)
  1385.                          ORG 0
  1386. msamMarkRecipients         ds.l   11        ; offset: $0 (0)
  1387.                          ORG 0
  1388. msamnMarkRecipients         ds.l   10        ; offset: $0 (0)
  1389.                          ORG 0
  1390. msamCreate                 ds.l   20        ; offset: $0 (0)
  1391.                          ORG 0
  1392. msamBeginNested             ds.l   17        ; offset: $0 (0)
  1393.                          ORG 0
  1394. msamEndNested             ds.l   7        ; offset: $0 (0)
  1395.                          ORG 0
  1396. msamSubmit                 ds.w   23        ; offset: $0 (0)
  1397.                          ORG 0
  1398. msamPutMsgHeader         ds.w   19        ; offset: $0 (0)
  1399.                          ORG 0
  1400. msamPutAttribute         ds.w   21        ; offset: $0 (0)
  1401.                          ORG 0
  1402. msamPutRecipient         ds.l   9        ; offset: $0 (0)
  1403.                          ORG 0
  1404. msamPutContent             ds.l   13        ; offset: $0 (0)
  1405.                          ORG 0
  1406. msamPutEnclosure         ds.w   65        ; offset: $0 (0)
  1407.                          ORG 0
  1408. msamPutBlock             ds.l   15        ; offset: $0 (0)
  1409.                          ORG 0
  1410. msamCreateReport         ds.l   13        ; offset: $0 (0)        ; Reports and Error Handling Calls 
  1411.                          ORG 0
  1412. msamPutRecipientReport     ds.l   8        ; offset: $0 (0)
  1413.                          ORG 0
  1414. pmsamCreateMsgSummary     ds.l   10        ; offset: $0 (0)
  1415.                          ORG 0
  1416. pmsamPutMsgSummary         ds.l   10        ; offset: $0 (0)
  1417.                          ORG 0
  1418. pmsamGetMsgSummary         ds.w   21        ; offset: $0 (0)
  1419.                          ORG 0
  1420. wakeupPMSAM                 ds.w   17        ; offset: $0 (0)
  1421.                          ORG 0
  1422. createMailSlot             ds.l   14        ; offset: $0 (0)
  1423.                          ORG 0
  1424. modifyMailSlot             ds.l   14        ; offset: $0 (0)
  1425.                          ORG 130
  1426. sizeof                     EQU *            ; size:   $82 (130)
  1427.                         ENDR
  1428.  
  1429. ;
  1430. ; pascal OSErr MailCreateMailSlot(MSAMParam *paramBlock)
  1431. ;
  1432.     IF ¬ GENERATINGCFM THEN
  1433.         Macro
  1434.         _MailCreateMailSlot
  1435.             moveq    #1,d0
  1436.             dc.w     $1F00
  1437.             move.w    #1323,-(sp)
  1438.             dc.w     $AA5E
  1439.         EndM
  1440.     ELSE
  1441.         IMPORT_CFM_FUNCTION    MailCreateMailSlot
  1442.     ENDIF
  1443.  
  1444. ; ASYNCHRONOUS ONLY, client must call WaitNextEvent 
  1445. ;
  1446. ; pascal OSErr MailModifyMailSlot(MSAMParam *paramBlock)
  1447. ;
  1448.     IF ¬ GENERATINGCFM THEN
  1449.         Macro
  1450.         _MailModifyMailSlot
  1451.             moveq    #1,d0
  1452.             dc.w     $1F00
  1453.             move.w    #1324,-(sp)
  1454.             dc.w     $AA5E
  1455.         EndM
  1456.     ELSE
  1457.         IMPORT_CFM_FUNCTION    MailModifyMailSlot
  1458.     ENDIF
  1459.  
  1460. ; ASYNCHRONOUS ONLY, client must call WaitNextEvent 
  1461. ;
  1462. ; pascal OSErr MailWakeupPMSAM(MSAMParam *paramBlock)
  1463. ;
  1464.     IF ¬ GENERATINGCFM THEN
  1465.         Macro
  1466.         _MailWakeupPMSAM
  1467.             moveq    #1,d0
  1468.             dc.w     $1F00
  1469.             move.w    #1287,-(sp)
  1470.             dc.w     $AA5E
  1471.         EndM
  1472.     ELSE
  1473.         IMPORT_CFM_FUNCTION    MailWakeupPMSAM
  1474.     ENDIF
  1475.  
  1476. ; Personal MSAM Glue Routines 
  1477. ;
  1478. ; pascal OSErr PMSAMOpenQueues(MSAMParam *paramBlock)
  1479. ;
  1480.     IF ¬ GENERATINGCFM THEN
  1481.         Macro
  1482.         _PMSAMOpenQueues
  1483.             moveq    #0,d0
  1484.             dc.w     $1F00
  1485.             move.w    #1280,-(sp)
  1486.             dc.w     $AA5E
  1487.         EndM
  1488.     ELSE
  1489.         IMPORT_CFM_FUNCTION    PMSAMOpenQueues
  1490.     ENDIF
  1491.  
  1492. ;
  1493. ; pascal OSErr PMSAMSetStatus(MSAMParam *paramBlock, Boolean asyncFlag)
  1494. ;
  1495.     IF ¬ GENERATINGCFM THEN
  1496.         Macro
  1497.         _PMSAMSetStatus
  1498.             move.w    #1319,-(sp)
  1499.             dc.w     $AA5E
  1500.         EndM
  1501.     ELSE
  1502.         IMPORT_CFM_FUNCTION    PMSAMSetStatus
  1503.     ENDIF
  1504.  
  1505. ; SYNC ONLY 
  1506. ;
  1507. ; pascal OSErr PMSAMGetMSAMRecord(MSAMParam *paramBlock)
  1508. ;
  1509.     IF ¬ GENERATINGCFM THEN
  1510.         Macro
  1511.         _PMSAMGetMSAMRecord
  1512.             moveq    #0,d0
  1513.             dc.w     $1F00
  1514.             move.w    #1286,-(sp)
  1515.             dc.w     $AA5E
  1516.         EndM
  1517.     ELSE
  1518.         IMPORT_CFM_FUNCTION    PMSAMGetMSAMRecord
  1519.     ENDIF
  1520.  
  1521. ; Server MSAM Glue Routines 
  1522. ; SYNC ONLY 
  1523. ;
  1524. ; pascal OSErr SMSAMSetup(MSAMParam *paramBlock)
  1525. ;
  1526.     IF ¬ GENERATINGCFM THEN
  1527.         Macro
  1528.         _SMSAMSetup
  1529.             moveq    #0,d0
  1530.             dc.w     $1F00
  1531.             move.w    #1315,-(sp)
  1532.             dc.w     $AA5E
  1533.         EndM
  1534.     ELSE
  1535.         IMPORT_CFM_FUNCTION    SMSAMSetup
  1536.     ENDIF
  1537.  
  1538. ; SYNC ONLY 
  1539. ;
  1540. ; pascal OSErr SMSAMStartup(MSAMParam *paramBlock)
  1541. ;
  1542.     IF ¬ GENERATINGCFM THEN
  1543.         Macro
  1544.         _SMSAMStartup
  1545.             moveq    #0,d0
  1546.             dc.w     $1F00
  1547.             move.w    #1281,-(sp)
  1548.             dc.w     $AA5E
  1549.         EndM
  1550.     ELSE
  1551.         IMPORT_CFM_FUNCTION    SMSAMStartup
  1552.     ENDIF
  1553.  
  1554. ;
  1555. ; pascal OSErr SMSAMShutdown(MSAMParam *paramBlock, Boolean asyncFlag)
  1556. ;
  1557.     IF ¬ GENERATINGCFM THEN
  1558.         Macro
  1559.         _SMSAMShutdown
  1560.             move.w    #1282,-(sp)
  1561.             dc.w     $AA5E
  1562.         EndM
  1563.     ELSE
  1564.         IMPORT_CFM_FUNCTION    SMSAMShutdown
  1565.     ENDIF
  1566.  
  1567. ; Get Interface Glue Routines 
  1568. ;
  1569. ; pascal OSErr MSAMEnumerate(MSAMParam *paramBlock, Boolean asyncFlag)
  1570. ;
  1571.     IF ¬ GENERATINGCFM THEN
  1572.         Macro
  1573.         _MSAMEnumerate
  1574.             move.w    #1283,-(sp)
  1575.             dc.w     $AA5E
  1576.         EndM
  1577.     ELSE
  1578.         IMPORT_CFM_FUNCTION    MSAMEnumerate
  1579.     ENDIF
  1580.  
  1581. ;
  1582. ; pascal OSErr MSAMDelete(MSAMParam *paramBlock, Boolean asyncFlag)
  1583. ;
  1584.     IF ¬ GENERATINGCFM THEN
  1585.         Macro
  1586.         _MSAMDelete
  1587.             move.w    #1284,-(sp)
  1588.             dc.w     $AA5E
  1589.         EndM
  1590.     ELSE
  1591.         IMPORT_CFM_FUNCTION    MSAMDelete
  1592.     ENDIF
  1593.  
  1594. ;
  1595. ; pascal OSErr MSAMMarkRecipients(MSAMParam *paramBlock, Boolean asyncFlag)
  1596. ;
  1597.     IF ¬ GENERATINGCFM THEN
  1598.         Macro
  1599.         _MSAMMarkRecipients
  1600.             move.w    #1285,-(sp)
  1601.             dc.w     $AA5E
  1602.         EndM
  1603.     ELSE
  1604.         IMPORT_CFM_FUNCTION    MSAMMarkRecipients
  1605.     ENDIF
  1606.  
  1607. ;
  1608. ; pascal OSErr MSAMnMarkRecipients(MSAMParam *paramBlock, Boolean asyncFlag)
  1609. ;
  1610.     IF ¬ GENERATINGCFM THEN
  1611.         Macro
  1612.         _MSAMnMarkRecipients
  1613.             move.w    #1298,-(sp)
  1614.             dc.w     $AA5E
  1615.         EndM
  1616.     ELSE
  1617.         IMPORT_CFM_FUNCTION    MSAMnMarkRecipients
  1618.     ENDIF
  1619.  
  1620. ;
  1621. ; pascal OSErr MSAMOpen(MSAMParam *paramBlock, Boolean asyncFlag)
  1622. ;
  1623.     IF ¬ GENERATINGCFM THEN
  1624.         Macro
  1625.         _MSAMOpen
  1626.             move.w    #1288,-(sp)
  1627.             dc.w     $AA5E
  1628.         EndM
  1629.     ELSE
  1630.         IMPORT_CFM_FUNCTION    MSAMOpen
  1631.     ENDIF
  1632.  
  1633. ;
  1634. ; pascal OSErr MSAMOpenNested(MSAMParam *paramBlock, Boolean asyncFlag)
  1635. ;
  1636.     IF ¬ GENERATINGCFM THEN
  1637.         Macro
  1638.         _MSAMOpenNested
  1639.             move.w    #1289,-(sp)
  1640.             dc.w     $AA5E
  1641.         EndM
  1642.     ELSE
  1643.         IMPORT_CFM_FUNCTION    MSAMOpenNested
  1644.     ENDIF
  1645.  
  1646. ;
  1647. ; pascal OSErr MSAMClose(MSAMParam *paramBlock, Boolean asyncFlag)
  1648. ;
  1649.     IF ¬ GENERATINGCFM THEN
  1650.         Macro
  1651.         _MSAMClose
  1652.             move.w    #1290,-(sp)
  1653.             dc.w     $AA5E
  1654.         EndM
  1655.     ELSE
  1656.         IMPORT_CFM_FUNCTION    MSAMClose
  1657.     ENDIF
  1658.  
  1659. ;
  1660. ; pascal OSErr MSAMGetRecipients(MSAMParam *paramBlock, Boolean asyncFlag)
  1661. ;
  1662.     IF ¬ GENERATINGCFM THEN
  1663.         Macro
  1664.         _MSAMGetRecipients
  1665.             move.w    #1292,-(sp)
  1666.             dc.w     $AA5E
  1667.         EndM
  1668.     ELSE
  1669.         IMPORT_CFM_FUNCTION    MSAMGetRecipients
  1670.     ENDIF
  1671.  
  1672. ;
  1673. ; pascal OSErr MSAMGetAttributes(MSAMParam *paramBlock, Boolean asyncFlag)
  1674. ;
  1675.     IF ¬ GENERATINGCFM THEN
  1676.         Macro
  1677.         _MSAMGetAttributes
  1678.             move.w    #1291,-(sp)
  1679.             dc.w     $AA5E
  1680.         EndM
  1681.     ELSE
  1682.         IMPORT_CFM_FUNCTION    MSAMGetAttributes
  1683.     ENDIF
  1684.  
  1685. ;
  1686. ; pascal OSErr MSAMGetContent(MSAMParam *paramBlock, Boolean asyncFlag)
  1687. ;
  1688.     IF ¬ GENERATINGCFM THEN
  1689.         Macro
  1690.         _MSAMGetContent
  1691.             move.w    #1293,-(sp)
  1692.             dc.w     $AA5E
  1693.         EndM
  1694.     ELSE
  1695.         IMPORT_CFM_FUNCTION    MSAMGetContent
  1696.     ENDIF
  1697.  
  1698. ;
  1699. ; pascal OSErr MSAMGetEnclosure(MSAMParam *paramBlock, Boolean asyncFlag)
  1700. ;
  1701.     IF ¬ GENERATINGCFM THEN
  1702.         Macro
  1703.         _MSAMGetEnclosure
  1704.             move.w    #1294,-(sp)
  1705.             dc.w     $AA5E
  1706.         EndM
  1707.     ELSE
  1708.         IMPORT_CFM_FUNCTION    MSAMGetEnclosure
  1709.     ENDIF
  1710.  
  1711. ;
  1712. ; pascal OSErr MSAMEnumerateBlocks(MSAMParam *paramBlock, Boolean asyncFlag)
  1713. ;
  1714.     IF ¬ GENERATINGCFM THEN
  1715.         Macro
  1716.         _MSAMEnumerateBlocks
  1717.             move.w    #1295,-(sp)
  1718.             dc.w     $AA5E
  1719.         EndM
  1720.     ELSE
  1721.         IMPORT_CFM_FUNCTION    MSAMEnumerateBlocks
  1722.     ENDIF
  1723.  
  1724. ;
  1725. ; pascal OSErr MSAMGetBlock(MSAMParam *paramBlock, Boolean asyncFlag)
  1726. ;
  1727.     IF ¬ GENERATINGCFM THEN
  1728.         Macro
  1729.         _MSAMGetBlock
  1730.             move.w    #1296,-(sp)
  1731.             dc.w     $AA5E
  1732.         EndM
  1733.     ELSE
  1734.         IMPORT_CFM_FUNCTION    MSAMGetBlock
  1735.     ENDIF
  1736.  
  1737. ;
  1738. ; pascal OSErr MSAMGetMsgHeader(MSAMParam *paramBlock, Boolean asyncFlag)
  1739. ;
  1740.     IF ¬ GENERATINGCFM THEN
  1741.         Macro
  1742.         _MSAMGetMsgHeader
  1743.             move.w    #1297,-(sp)
  1744.             dc.w     $AA5E
  1745.         EndM
  1746.     ELSE
  1747.         IMPORT_CFM_FUNCTION    MSAMGetMsgHeader
  1748.     ENDIF
  1749.  
  1750. ; Put Interface Glue Routines 
  1751. ;
  1752. ; pascal OSErr MSAMCreate(MSAMParam *paramBlock, Boolean asyncFlag)
  1753. ;
  1754.     IF ¬ GENERATINGCFM THEN
  1755.         Macro
  1756.         _MSAMCreate
  1757.             move.w    #1300,-(sp)
  1758.             dc.w     $AA5E
  1759.         EndM
  1760.     ELSE
  1761.         IMPORT_CFM_FUNCTION    MSAMCreate
  1762.     ENDIF
  1763.  
  1764. ;
  1765. ; pascal OSErr MSAMBeginNested(MSAMParam *paramBlock, Boolean asyncFlag)
  1766. ;
  1767.     IF ¬ GENERATINGCFM THEN
  1768.         Macro
  1769.         _MSAMBeginNested
  1770.             move.w    #1301,-(sp)
  1771.             dc.w     $AA5E
  1772.         EndM
  1773.     ELSE
  1774.         IMPORT_CFM_FUNCTION    MSAMBeginNested
  1775.     ENDIF
  1776.  
  1777. ;
  1778. ; pascal OSErr MSAMEndNested(MSAMParam *paramBlock)
  1779. ;
  1780.     IF ¬ GENERATINGCFM THEN
  1781.         Macro
  1782.         _MSAMEndNested
  1783.             moveq    #0,d0
  1784.             dc.w     $1F00
  1785.             move.w    #1302,-(sp)
  1786.             dc.w     $AA5E
  1787.         EndM
  1788.     ELSE
  1789.         IMPORT_CFM_FUNCTION    MSAMEndNested
  1790.     ENDIF
  1791.  
  1792. ;  SYNCHRONOUS ONLY 
  1793. ;
  1794. ; pascal OSErr MSAMSubmit(MSAMParam *paramBlock)
  1795. ;
  1796.     IF ¬ GENERATINGCFM THEN
  1797.         Macro
  1798.         _MSAMSubmit
  1799.             moveq    #0,d0
  1800.             dc.w     $1F00
  1801.             move.w    #1303,-(sp)
  1802.             dc.w     $AA5E
  1803.         EndM
  1804.     ELSE
  1805.         IMPORT_CFM_FUNCTION    MSAMSubmit
  1806.     ENDIF
  1807.  
  1808. ;
  1809. ; pascal OSErr MSAMPutAttribute(MSAMParam *paramBlock, Boolean asyncFlag)
  1810. ;
  1811.     IF ¬ GENERATINGCFM THEN
  1812.         Macro
  1813.         _MSAMPutAttribute
  1814.             move.w    #1304,-(sp)
  1815.             dc.w     $AA5E
  1816.         EndM
  1817.     ELSE
  1818.         IMPORT_CFM_FUNCTION    MSAMPutAttribute
  1819.     ENDIF
  1820.  
  1821. ;
  1822. ; pascal OSErr MSAMPutRecipient(MSAMParam *paramBlock, Boolean asyncFlag)
  1823. ;
  1824.     IF ¬ GENERATINGCFM THEN
  1825.         Macro
  1826.         _MSAMPutRecipient
  1827.             move.w    #1305,-(sp)
  1828.             dc.w     $AA5E
  1829.         EndM
  1830.     ELSE
  1831.         IMPORT_CFM_FUNCTION    MSAMPutRecipient
  1832.     ENDIF
  1833.  
  1834. ;
  1835. ; pascal OSErr MSAMPutContent(MSAMParam *paramBlock, Boolean asyncFlag)
  1836. ;
  1837.     IF ¬ GENERATINGCFM THEN
  1838.         Macro
  1839.         _MSAMPutContent
  1840.             move.w    #1306,-(sp)
  1841.             dc.w     $AA5E
  1842.         EndM
  1843.     ELSE
  1844.         IMPORT_CFM_FUNCTION    MSAMPutContent
  1845.     ENDIF
  1846.  
  1847. ;  SYNCHRONOUS ONLY 
  1848. ;
  1849. ; pascal OSErr MSAMPutEnclosure(MSAMParam *paramBlock)
  1850. ;
  1851.     IF ¬ GENERATINGCFM THEN
  1852.         Macro
  1853.         _MSAMPutEnclosure
  1854.             moveq    #0,d0
  1855.             dc.w     $1F00
  1856.             move.w    #1307,-(sp)
  1857.             dc.w     $AA5E
  1858.         EndM
  1859.     ELSE
  1860.         IMPORT_CFM_FUNCTION    MSAMPutEnclosure
  1861.     ENDIF
  1862.  
  1863. ;
  1864. ; pascal OSErr MSAMPutBlock(MSAMParam *paramBlock, Boolean asyncFlag)
  1865. ;
  1866.     IF ¬ GENERATINGCFM THEN
  1867.         Macro
  1868.         _MSAMPutBlock
  1869.             move.w    #1308,-(sp)
  1870.             dc.w     $AA5E
  1871.         EndM
  1872.     ELSE
  1873.         IMPORT_CFM_FUNCTION    MSAMPutBlock
  1874.     ENDIF
  1875.  
  1876. ;
  1877. ; pascal OSErr MSAMPutMsgHeader(MSAMParam *paramBlock, Boolean asyncFlag)
  1878. ;
  1879.     IF ¬ GENERATINGCFM THEN
  1880.         Macro
  1881.         _MSAMPutMsgHeader
  1882.             move.w    #1309,-(sp)
  1883.             dc.w     $AA5E
  1884.         EndM
  1885.     ELSE
  1886.         IMPORT_CFM_FUNCTION    MSAMPutMsgHeader
  1887.     ENDIF
  1888.  
  1889. ; Reports and Error Handling Glue Routines 
  1890. ;
  1891. ; pascal OSErr MSAMCreateReport(MSAMParam *paramBlock, Boolean asyncFlag)
  1892. ;
  1893.     IF ¬ GENERATINGCFM THEN
  1894.         Macro
  1895.         _MSAMCreateReport
  1896.             move.w    #1311,-(sp)
  1897.             dc.w     $AA5E
  1898.         EndM
  1899.     ELSE
  1900.         IMPORT_CFM_FUNCTION    MSAMCreateReport
  1901.     ENDIF
  1902.  
  1903. ;
  1904. ; pascal OSErr MSAMPutRecipientReport(MSAMParam *paramBlock, Boolean asyncFlag)
  1905. ;
  1906.     IF ¬ GENERATINGCFM THEN
  1907.         Macro
  1908.         _MSAMPutRecipientReport
  1909.             move.w    #1312,-(sp)
  1910.             dc.w     $AA5E
  1911.         EndM
  1912.     ELSE
  1913.         IMPORT_CFM_FUNCTION    MSAMPutRecipientReport
  1914.     ENDIF
  1915.  
  1916. ;
  1917. ; pascal OSErr PMSAMLogError(MSAMParam *paramBlock)
  1918. ;
  1919.     IF ¬ GENERATINGCFM THEN
  1920.         Macro
  1921.         _PMSAMLogError
  1922.             moveq    #0,d0
  1923.             dc.w     $1F00
  1924.             move.w    #1313,-(sp)
  1925.             dc.w     $AA5E
  1926.         EndM
  1927.     ELSE
  1928.         IMPORT_CFM_FUNCTION    PMSAMLogError
  1929.     ENDIF
  1930.  
  1931. ; MsgSummary Glue Routines 
  1932. ;
  1933. ; pascal OSErr PMSAMCreateMsgSummary(MSAMParam *paramBlock, Boolean asyncFlag)
  1934. ;
  1935.     IF ¬ GENERATINGCFM THEN
  1936.         Macro
  1937.         _PMSAMCreateMsgSummary
  1938.             move.w    #1314,-(sp)
  1939.             dc.w     $AA5E
  1940.         EndM
  1941.     ELSE
  1942.         IMPORT_CFM_FUNCTION    PMSAMCreateMsgSummary
  1943.     ENDIF
  1944.  
  1945. ;
  1946. ; pascal OSErr PMSAMPutMsgSummary(MSAMParam *paramBlock, Boolean asyncFlag)
  1947. ;
  1948.     IF ¬ GENERATINGCFM THEN
  1949.         Macro
  1950.         _PMSAMPutMsgSummary
  1951.             move.w    #1317,-(sp)
  1952.             dc.w     $AA5E
  1953.         EndM
  1954.     ELSE
  1955.         IMPORT_CFM_FUNCTION    PMSAMPutMsgSummary
  1956.     ENDIF
  1957.  
  1958. ;
  1959. ; pascal OSErr PMSAMGetMsgSummary(MSAMParam *paramBlock, Boolean asyncFlag)
  1960. ;
  1961.     IF ¬ GENERATINGCFM THEN
  1962.         Macro
  1963.         _PMSAMGetMsgSummary
  1964.             move.w    #1318,-(sp)
  1965.             dc.w     $AA5E
  1966.         EndM
  1967.     ELSE
  1968.         IMPORT_CFM_FUNCTION    PMSAMGetMsgSummary
  1969.     ENDIF
  1970.  
  1971.     ENDIF ; __OCEMAIL__
  1972.